无法从PHP中的不同字段获取值

时间:2015-03-08 18:05:36

标签: php html

我有一个包含两个部分(表单)的页面,第一个是关于我想要创建多少个新字段的数量,第二个是新字段。所以我的问题是我无法从第二个字段获取信息。这是代码:

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,如果它有很多错误或不好的做法,我很抱歉。

1 个答案:

答案 0 :(得分:1)

这里有两件事是错的:

首先,您需要在$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循环中使用它来保留{{1}}的值。我还只制作了一个表格,它将提交两次,而不是两种表格。