Mysql
 sql >> Database >  >> RDS >> Mysql

Come prendere gli input della casella di testo creata dinamicamente su php e archiviarli in MySQL usando il loop?

Puoi farlo nel modo seguente.

Ogni volta che crei una casella di testo utilizzando JavaScript o jQuery, mantieni il conteggio della casella di testo, supponiamo che tu abbia due caselle di testo per impostazione predefinita sull'HTML, quindi memorizza quel conteggio nel campo nascosto come hai fatto in questo modo:

<input type"hidden" id="h" name="h" value="0"/>

Quindi prova questo, stai leggendo il valore in modo errato:

Invece di usare $var[z]=$_POST['textbox'][$z]; usa $var[z]=$_POST['textbox'.$z]; .

Penso invece di modificare ogni casella di testo id value, basta rimuoverlo dall'HTML e controllare il codice PHP:

    <?php
     include_once('db.php');

     $x=$_POST["h"];
     $y=intval($x);
     $z=0;
     while($z<=$y){
            if(isset($_POST['textbox'.$z]) && !empty($_POST['textbox'.$z])){
                     $var[z]=$_POST['textbox'.$z];
                     echo "$var[$z]";
                     $sql="INSERT into the Data values('".$var[z]."');";
                     $query=mysql_query($sql);
            }
     }
    ?>

Un altro modo, per risolvere entrambi i tuoi problemi :)

test.html:

<html>
    <title>TEST</title>
    <body>
        <form action="test.php" method="post">
        <input type="text" name="demo[]" value=""/>
        <input type="text" name="demo[]" value=""/>
        <input type="text" name="demo[]" value=""/>
        <input type="text" name="demo[]" value=""/>
        <input type="text" name="demo[]" value=""/>
        <input type="submit">
        </form>
    </body>
</html>

test.php:

print_r($_POST);
exit;

uscita:

Array ( [demo] => Array ( [0] => zxc [1] => zxc [2] => ewe [3] => ecc [4] => zzx ) )