我有一个包含两个部分(表单)的页面,第一个是我要创建的新字段数,第二个是新字段在哪里。所以我的问题是我无法从第二个字段中获取信息。这是代码:
echo "<form action='create-table.php' method='post'>";
echo "How much fields you want?: <input type='numer' name='fieldsnum'><br>";
echo "<input type='submit' name='first'>";
echo "</form>";
$fieldsnum = $_POST["fieldsnum"];
echo "<form action='create-table.php' method='post'>";
echo "Table Name: <input type='text' name='table'><br><br>";
$table = $_POST["table"];
echo $table;
while ($a < $fieldsnum){
echo "Table Field $a: <input type='text' name='$a'><br>";
$a++;
}
echo "<input type='submit' name='second'>";
echo "</form>";
for($a = 0; $a<$fieldsnum; $a++){
$info[$a] = $_POST[$a];
}
第一个循环可以正常工作,但是第二个循环有一些问题,无法获取数据。我不了解PHP,如果它有很多错误或不良做法,对不起。
这里有两件事是错误的:
首先,您需要$a = 0;
在while
循环之前进行设置,否则将进行第一次迭代
while ($a < $fieldsnum){...}
将输出:
<input type="text" name>
因此,您将不会从该字段获得任何数据。
其次,您的for
循环失败,因为$fieldsnum
在第二次提交时为空。
试试这个:
<?php
$fieldsnum = $_POST["fieldsnum"];
$table = $_POST["table"];
if (isset($_POST["fieldsnum_keep"])) {
$fieldsnum = $_POST["fieldsnum_keep"];
for($a = 0; $a < $fieldsnum; $a++){
$fieldName = $_POST["feild_$a"];
echo "Field Name $a : $fieldName <br>";
}
}
?>
<form action='create-table.php' method='post'>
How much fields you want?
<input type='number' name='fieldsnum'><br>
Table Name:
<input type='text' name='table'><br>
<?php
echo $table . "<br>";
$a = 0;
while ($a < $fieldsnum){
echo "Field Name $a: <input type='text' name='feild_$a'><br>";
echo "<input type='hidden' name='fieldsnum_keep' value='$fieldsnum'><br>";
$a++;
}
?>
<input type="submit" name="second" value="Submit">
</form>
我保留了值,方法$fieldsnum
是将其添加到隐藏字段中,然后在for循环中使用它。我也只填写了一种表格,它将提交两次,而不是2份表格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句