Как вносить вкладки динамически созданного текстового поля на php и хранить их в MySQL с помощью цикла?

В Sample.php у меня есть

<html> <head> <title>Test</title> </head> <script language="javascript"> var count = 1; function addRow(divId) { var parentDiv = document.getElementById(divId); var eleDiv = document.createElement("div"); eleDiv.setAttribute("name", "olddiv"); eleDiv.setAttribute("id", "olddiv"); var eleText = document.createElement("input"); eleText.setAttribute("type", "text"); eleText.setAttribute("name", 'textbox' + count); eleText.setAttribute("id", "textbox" + count); var eleBtn = document.createElement("input"); eleBtn.setAttribute("type", "button"); eleBtn.setAttribute("value", "delete"); eleBtn.setAttribute("name", "button"); eleBtn.setAttribute("id", "button"); eleBtn.setAttribute("onclick", "deleteRow('button')"); parentDiv.appendChild(eleDiv); eleDiv.appendChild(eleText); eleDiv.appendChild(eleBtn); var golu=count.toString(); document.getElementById("h").value= golu; count++; } function deleteRow(tableID) { var div = document.getElementById('olddiv'); if (div) { div.parentNode.removeChild(div); } var golu=count.toString(); document.getElementById("h").value= golu; } var golu=count.toString(); document.getElementById("h").value= golu; </script> <body> <form action="Page.php" method="post"> <input type="button" value="Add Row" onclick="addRow('dataTable')" /> <div id="dataTable"><INPUT type="text" name="textbox0" id="textbox0"/></div> <input type"hidden" id="h" name="h" value="0"/> <button type="submit" name="submit" id="submit">Submit</button> </form> </body> </html> 

В Page.php у меня есть

 <?php include_once('db.php'); $x=$_POST["h"]; $y=intval($x); $z=0; while($z<=$y){ $var[z]=$_POST['textbox'][$z]; echo "$var[$z]"; $sql="INSERT into Data values('".$var[z]."');"; $query = mysql_query($sql); } ?> в <?php include_once('db.php'); $x=$_POST["h"]; $y=intval($x); $z=0; while($z<=$y){ $var[z]=$_POST['textbox'][$z]; echo "$var[$z]"; $sql="INSERT into Data values('".$var[z]."');"; $query = mysql_query($sql); } ?> 

Мои проблемы:

  1. Моя цель – получить все значения textbox0, textbox1, .. и т. Д. используя loop в page.php.

    Но я не могу получить желаемый результат. Фактически после отправки Pape.php появляется пустым. Получив все, я также хочу, чтобы они хранили в базе данных MySQL.

  2. Всякий раз, когда я удаляю текстовое поле, последовательность идентификаторов текстовых полей не изменяется.

Скажите, пожалуйста, что делать.

Вы можете сделать это следующим образом.

Всякий раз, когда вы создаете текстовое поле с помощью JavaScript или jQuery, поддерживайте подсчет текстового поля, предположим, что у вас есть два текстовых поля по умолчанию в HTML, поэтому храните их в скрытом поле, как вы это делали:

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

Тогда попробуйте это, вы читаете значение не так:

Вместо использования $var[z]=$_POST['textbox'][$z]; используйте $var[z]=$_POST['textbox'.$z]; ,

Я думаю, вместо того, чтобы редактировать каждое значение id текстового поля, просто удалите его из HTML и проверьте в 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); } } ?> в  <?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); } } ?> 

Еще один способ решить обе ваши проблемы 🙂

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; 

вывод:

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