Insert multiple a partire da form html

azocomposto

Nuovo Utente
13 Apr 2007
7
0
0
Ciao,
ho la seguente esigenza: a partire dalla pagina form.html che contiene i campi: nome, articolo e quantità, posso creare più righe e tramite una submit, invio alla pagina insert.php che ha il compito di inserire nella tabella tbl_articoli le righe definite nella form.html

Esempio:
Nella pagina form.html posso creare dinamicamente ( a seconda delle esigenze) due o tre righe. Cliccando sul pulsante submit, invio tramite _POST i valori dei campi nome, articolo, quantità alla pagina insert.php. Quindi nella tabella mi aspetto due o tre righe.

Il campo Codice deve essere ripetuto uguale per tutte le righe inserite.
Attualmente, lo script sembra andare a buon fine, ma non inserisce nulla nella tabella mysql e non segnala nemmeno errori.

Pagina form.html

HTML:
<head>
    <script type="text/javascript" src="js/script.js"></script> 
</head>
<body>    
    <form action="insert.php" method="POST">

            <p> 
                <input type="button" value="Add Passenger" onClick="addRow('dataTable')" /> 
                <input type="button" value="Remove Passenger" onClick="deleteRow('dataTable')"  /> 
            </p>
           <table id="dataTable" border="1">
              <tbody>
                <tr>
                    <td>
                        <label>Codice</label>
                        <input type="text" name="mx_codice" value="425882258">
                     </td>
                    <td>
                        <label>Nome</label>
                        <input type="text" name="mx_Nome[]">
                     </td>
                     <td>
                    <td>
                        <label>articolo</label>
                        <input type="text"  name="mx_articolo[]">
                     </td>
                    <td>
                        <label>quantità</label>
                        <input type="text"  name="mx_qta[]">
                     </td>                     
                </tr>
                </tbody>
            </table>
        <input class="submit" type="submit" value="Confirm" />
    </form>
</body>


Pagina insert.php

PHP:
 <?
$insert = array();
for($i=0; $i < count($_POST['mx_codice']); $i++)
{
    $mx_codice = isset($_POST['mx_codice'][$i]) ? $_POST['mx_codice'][$i] : '';
    $mx_Nome = isset($_POST['mx_Nome'][$i]) ? $_POST['mx_Nome'][$i] : '';
    $mx_articolo = isset($_POST['mx_articolo'][$i]) ? $_POST['mx_articolo'][$i] : '';
    $mx_qta = isset($_POST['mx_qta'][$i]) ? $_POST['mx_qta'][$i] : '';
    ...
    $insert[] = "({$mx_codice}, {$mx_Nome}, {$mx_articolo}, {$mx_qta})";
}
$values = implode(', ', $insert);
$query = "INSERT INTO tbl_test VALUES $values";
//execute it
?>


Come posso modificare la Insert affinchè inserisca i valori ricevuti nelle variabili _POST su più righe contemporaneamente?


Grazie
 
scusa dimenticavo, mi è saltato il paste
metti un var_dump per verificare la querystringa se viene scritta come dovrebbe
PHP:
<?php
//..........
$values = implode(', ', $insert);
$query = "INSERT INTO tbl_test VALUES $values";
var_dump($query);
//.........
?>
 
scusa dimenticavo, mi è saltato il paste
metti un var_dump per verificare la querystringa se viene scritta come dovrebbe
PHP:
<?php
//..........
$values = implode(', ', $insert);
$query = "INSERT INTO tbl_test VALUES $values";
var_dump($query);
//.........
?>

Ciao,
intanto grazie per la risposta. la connessione al db non l'ho postata ma c'è, altrimenti avrei altri errori a video. Ho risolto utilizzando is_array e foreach.

Grazie lo stesso :byebye:
 

Discussioni simili