Visualizzazione risultati 1 fino 3 di 3

Discussione: Pagina dinamica inserimento e modifica dei dati

  1. #1
    densitsw non è connesso Neofita
    Data registrazione
    18-11-2015
    Messaggi
    2

    Predefinito Pagina dinamica inserimento e modifica dei dati

    Ciao a tutti,
    cercherò di spiegarvi il mio problema nel modo più chiaro possibile, anche se essendo alle prime armi può darsi che non riesca. Per questo fate pure domande

    Il mio obiettivo è quello di salvare dei rapporti mensili di ogni dipendente.
    Ho quindi messo un input dove scelgo il mese. Una volta selezionato viene caricata tramite javascript una pagina php che prende il mese in input tramite POST, dopodiché carica dal database i dati relativi ad ogni dipendente di quel mese. Quindi i dati vengono visualizzati dentro inputbox.

    A questo punto l'utente può inserire o modificare i dati e poi salvarli.

    Il mio problema è che non funziona il salvataggio dei dati sul database.
    Vi allego il codice delle due pagine e il link della pagina che lavora sul database.

    http://densitsw.altervista.org/rapporti/rapp_modif.php

    Grazie mille del vostro aiuto!

    Codice HTML:
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<script>
    function data(m) {
        if (m == "") {
            document.getElementById("rap_tabella").innerHTML = "";
            return;
        } else { 
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("rap_tabella").innerHTML = xmlhttp.responseText;
                }
            };
            xmlhttp.open("GET","rapp_tabella_modif.php?m="+m,true);
            xmlhttp.send();
        }
    }
    		</script>
    		<?php include 'head_rap.php';?>
        </head>
    	<body>
    		<nav class="navbar navbar-inverse">
    			<div class="container-fluid">
    				<div class="navbar-header">
    					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
    						<span class="icon-bar"></span>
    						<span class="icon-bar"></span>
    						<span class="icon-bar"></span>
    					</button>
    					<a class="navbar-brand" href="index.php">
    						<span class="glyphicon glyphicon-home"></span>
    					</a>
    				</div>
    				<div class="collapse navbar-collapse" id="myNavbar">
    					<ul class="nav navbar-nav">
    						<li><a href="/rapporti/anag.php">Anagrafica</a></li>
    						<li class="active"><a href="/rapporti/rapp.php">Rapporto Mensile</a></li>
    					</ul>
    				</div>
    			</div>
    		</nav>
    
    		<div class="container-fluid">
    			<div class="row">
    				<div class="col-sm-2 sidebar">
    					<ul class="nav nav-sidebar">
    						<li><a href="/rapporti/rapp.php">
    							<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> Rapp. Mensile</a>
    						</li>
    					</ul>
    				</div>
    				<div class="col-sm-10 main">
    					<form method="get" class="form-inline">
    <?php
    	$d=strtotime("-1 Month");
    	echo "<input type='month' class='form-control' name='mese' style='width: auto;' onchange='data(this.value)'>\n";
    	//value=".date("Y-m",$d)."
    ?>
    						<div id="rap_tabella">
    						</div>
    <?php
    
    ?>
    					</form>
    				</div>
    			</div>
    		</div>
    	</body>
    </html>

    Codice PHP:
    <?php
        $link 
    = new mysqli("localhost","densitsw","","my_densitsw");
        if (
    $link->connect_error) {
            die(
    "Errore connessione: " $link->connect_error);
        }
        echo 
    "<form method='post' class='form-horizontal'>";
        echo 
    "<div class=\"table-responsive\">\n";
        echo 
    "<table class=\"table table-hover\">\n";
        echo 
    "<thead>\n";
        echo 
    "<tr>\n";
        echo 
    "\t\t<th>Proclamatore</th>\n";
        echo 
    "\t\t<th>Inc</th>\n";
        echo 
    "\t\t<th>Pubb</th>\n";
        echo 
    "\t\t<th>Video</th>\n";
        echo 
    "\t\t<th>Ore</th>\n";
        echo 
    "\t\t<th>VU</th>\n";
        echo 
    "\t\t<th>Studi</th>\n";
        echo 
    "\t\t<th>Osservazioni</th>\n";
        echo 
    "</tr>\n";
        echo 
    "</thead>\n";
        echo 
    "<tbody>\n";
        
    $query 'SELECT CP_Anag, Nome FROM rap_anag ORDER BY rap_anag.Nome';
        
    $tab_nomi $link->query($query);
        if (
    $tab_nomi->num_rows 0) {
            while(
    $riga $tab_nomi->fetch_assoc()) {
                echo 
    "\t<tr>\n";
                echo 
    "\t\t<td>".$riga["Nome"]."</td>\n";
                
    $query2 'SELECT rap_rapporti.* FROM rap_rapporti 
                    WHERE Mese="'
    .$_GET["m"].'" AND CE_Anag="'.$riga["CP_Anag"].'"';
                
    $tab $link->query($query2);
                
    $r $tab->fetch_assoc();
                
    $indici[$x] = $r["CP_Rap"];
                echo 
    "\t\t<td><input type='text' class='form-control' name='Inc"
                    
    .$r["CP_Rap"]."' value='".$r["Inc"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='Pubb"
                    
    .$r["CP_Rap"]."' value='".$r["Pubb"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='Video"
                    
    .$r["CP_Rap"]."' value='".$r["Video"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='Ore"
                    
    .$r["CP_Rap"]."' value='".$r["Ore"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='VU"
                    
    .$r["CP_Rap"]."' value='".$r["VU"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='Studi"
                    
    .$r["CP_Rap"]."' value='".$r["Studi"]."'></td>\n";
                echo 
    "\t\t<td><input type='text' class='form-control' name='Note"
                    
    .$r["CP_Rap"]."' value='".$r["Note"]."'></td>\n";
                echo 
    "\t</tr>\n";
            }
        } else {
            echo 
    "\t<tr>\n";
            echo 
    "\t\t<td>Database vuoto</td>\n";
            echo 
    "\t</tr>\n";
        }
        echo 
    "</tbody>";
        echo 
    "</table>\n";
        echo 
    "</div>\n";
        echo 
    "<div class='form-group'>\n";
        echo 
    "<input type=\"submit\" class=\"btn btn-default\">\n";
        echo 
    "</div>\n";
        echo 
    "</form>\n";
        if (
    $_SERVER["REQUEST_METHOD"] == "POST") {
            foreach (
    $indici as $i) {
                
    $query "UPDATE rap_rapporti SET Inc='".$_POST["Inc".$i].
                    
    "', Pubb='".$_POST["Pubb".$i].
                    
    "', Video='".$_POST["Video".$i].
                    
    "', Ore='".$_POST["Ore".$i].
                    
    "', VU='".$_POST["VU".$i].
                    
    "', Studi='".$_POST["Studi".$i].
                    
    "', Note='".$_POST["Note".$i].
                    
    "' WHERE CP_Rap='".$i."'";
                if (
    $link->query($query) === TRUE) {
                } else {
                    
    $errore $link->error;
                }
            }
            if (isset(
    $errore)) {
                echo 
    "<div class=\"alert alert-danger\" role=\"alert\">
                       <span class=\"glyphicon glyphicon-warning-sign\" aria-hidden=\"true\"></span>
                    <span class=\"sr-only\">Error:</span>
                    Errore: " 
    $errore "</div>" ;
            } else {
                echo 
    "<div class=\"alert alert-success\" role=\"alert\">
                       <span class=\"glyphicon glyphicon-ok\" aria-hidden=\"true\"></span>
                    <span class=\"sr-only\">Ok:</span> 
                      Modifiche effettuate</div>" 
    ;
            }
        }
        
    $link->close();
    ?>
    Ultima modifica di densitsw : 12-01-2018 alle ore 11.43.33

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    10,531

    Predefinito

    Prima di tutto verifica (con echo, o var_dump o qualsiasi altro modo) che $_POST["Inc".$i] sia corretto.
    Inoltre è necessario aggiornare tutti i valori (UPDATE)? Non ho analizzato così a fondo il funzionamento dello script, ma potenzialmente possono cambiare tutti i dati? (tenterei di farei un'unica UPDATE fuori da un ciclo, se cambiano i dati soltanto di una riga).

    Inoltre occhio che il modo in cui stai formando la query è soggetto a sql injection. Dovresti passare i dati prelevati da $_POST tramite escape_string().

    Ciao!
    Ultima modifica di alemoppo : 12-01-2018 alle ore 12.31.36

  3. #3
    densitsw non è connesso Neofita
    Data registrazione
    18-11-2015
    Messaggi
    2

    Predefinito

    si potrebbero cambiare vari dati... sto valutando di modificare la pagina.. magari visualizzo i dati e metto dei bottoni in ogni riga così da modificare una riga alla volta..

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •