Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie nehme ich Eingaben von dynamisch erstelltem Textfeld in PHP und speichere sie in MySQL mit einer Schleife?

Sie können dies folgendermaßen tun.

Immer wenn Sie ein Textfeld mit JavaScript oder jQuery erstellen, behalten Sie die Anzahl der Textfelder bei, angenommen, Sie haben standardmäßig zwei Textfelder im HTML-Code, also speichern Sie diese Anzahl in das verborgene Feld, wie Sie es getan haben:

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

Dann versuchen Sie Folgendes, Sie lesen den Wert falsch:

Statt $var[z]=$_POST['textbox'][$z]; zu verwenden Verwenden Sie $var[z]=$_POST['textbox'.$z]; .

Ich denke, anstatt jedes Textfeld id zu bearbeiten Wert, entfernen Sie ihn einfach aus HTML und checken Sie ihn in den PHP-Code ein:

    <?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);
            }
     }
    ?>

Ein anderer Weg, um beide Probleme zu lösen :)

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;

Ausgabe:

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