Ciao a tutti,
sono nuovo del forum e vorrei un consiglio.
Sto realizzando un piccolo form per fatture con aggiunta di righe multiple, quindi ho i miei pulsanti per l'aggiunta di una nuova riga, la rimozione di una riga e il salvataggio del tutto che richiama una query mysql.
Sono alle prime armi con php e mysql e, sicuramente, faccio qualche stupidata.
Ora arrivo al problema. Faccio un esempio per capire meglio.
Faccio una nuova fattura con due righe:
| DESCRIZIONE | QT | PREZZO |
articolo1 1 10
articolo2 2 20
Quando vado a fare il salva viene salvata solo l'ultima riga.
Sicuramente è un problema di php, di come ho impostato la cosa.
Non capisco se devo realizzare un array o altro.
Vi posto il codice html con lo script java e il codice php.
Vorrei far notare che quando aggiungo una riga, i campi input prendono sempre gli stessi nomi. Non vorrei che ciò sia parte del problema.
	
	
	
		
	
	
	
		
Grazie a tutti per l'aiuto
				
			sono nuovo del forum e vorrei un consiglio.
Sto realizzando un piccolo form per fatture con aggiunta di righe multiple, quindi ho i miei pulsanti per l'aggiunta di una nuova riga, la rimozione di una riga e il salvataggio del tutto che richiama una query mysql.
Sono alle prime armi con php e mysql e, sicuramente, faccio qualche stupidata.
Ora arrivo al problema. Faccio un esempio per capire meglio.
Faccio una nuova fattura con due righe:
| DESCRIZIONE | QT | PREZZO |
articolo1 1 10
articolo2 2 20
Quando vado a fare il salva viene salvata solo l'ultima riga.
Sicuramente è un problema di php, di come ho impostato la cosa.
Non capisco se devo realizzare un array o altro.
Vi posto il codice html con lo script java e il codice php.
Vorrei far notare che quando aggiungo una riga, i campi input prendono sempre gli stessi nomi. Non vorrei che ciò sia parte del problema.
		Codice:
	
	<!DOCTYPE html>
<head>
<style type="text/css">
table,tr,td{border:0px solid black;}
</style>
<script type="text/javascript">
    function addRow(tableID) {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);
        var colCount = table.rows[0].cells.length;
        for(var i=0; i<colCount; i++) {
            var newcell = row.insertCell(i);
            newcell.innerHTML = table.rows[0].cells[i].innerHTML;
            //alert(newcell.childNodes);
            switch(newcell.childNodes[0].type) {
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "checkbox":
                    newcell.childNodes[0].checked = false;
                    break;
                case "select-one":
                    newcell.childNodes[0].selectedIndex = 0;
                    break;
            }
        }
    }
    function deleteRow(tableID) {
        try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                if(rowCount <= 1) {
                    alert("Impossibile cancellare tutte le righe");
                    break;
                }
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
        }catch(e) {
            alert(e);
        }
    }
</script>
</head>
<body>
    <style type="text/css">
    table,tr,td{border:0px solid black;}
    </style>
      <table id="titlebar" cellspacing="0px">
            <tr>
                <td style="width:20px;">✓</td>
                <td style="width:160px;">DESCRIZIONE</td>
                <td style="width:62px;">QT.</td>
                <td style="width:63px;">PREZZO</td>
                
            </tr>
        </table>
        <form action="index.php" method="POST">
      <table id="dataTable" width="auto" style="margin:-4px 0 0 0;" cellspacing="0px">
        <tr>
          <td style="width:20px;"><INPUT type="checkbox" name="chk" /></td>
          <td><INPUT type="text" name="descrizione" style="width:160px;" autocomplete="on" placeholder="DESCRIZIONE" required/></td>
                <td><INPUT type="text" name="qt" style="width:62px;" autocomplete="on" placeholder="QT." required/></td>
                <td><INPUT type="text" name="prezzo" style="width:63px;" autocomplete="on" placeholder="PREZZO" required/></td>
          
          </td>
               
        </tr>
      </table>
        <INPUT type="button" value="AGGIUNGI RIGA" onclick="addRow('dataTable')" />
      <INPUT type="button" value="CANCELLA RIGA" onclick="deleteRow('dataTable')" />
        <INPUT type="submit" value="INVIA"/>
        </form>
</body>
</html>
	
		PHP:
	
	<?php
   
       $con = mysql_connect('localhost', 'xxx', 'xxx') or die ('Errore, non posso fare il login');
       mysql_select_db('test') or die("errore nel selezionare il db");
     $desc = $_POST['descrizione'];
     $qt = $_POST['qt'];
     $pz = $_POST['prezzo'];
     $sql=mysql_query("INSERT INTO tab (id,descrizione,qt,prezzo) VALUES ('','$desc','$qt','$pz')");
   
   mysql_close();
    
    ?>
	Grazie a tutti per l'aiuto