获取多个循环文本框的值

时间:2014-09-26 07:17:52

标签: php html arrays

所以我有这个用户设置数据库表的程序。首先,我问他们想要多少个字段。

first.php

<html>
<form name="formCreateFields" method="post" align="center" action="second.php">
    <p>Number of fields: &nbsp; <input type ="text" name="fieldsNum"/> &nbsp;
    <input type="submit" name="submitFieldsNum" value=" Submit "/></p><br>
</form>
</html>

然后我根据上面的输入循环字段。

second.php

<?php

echo "<form name='formSetupFields' method='post' align='center' action='third.php'>";

for ($z=1; $z<=$_POST['fieldsNum']; $z++) {
    echo "<table align='center'>
        <tr>
            <th rowspan=2> <big> $z </big> &nbsp; &nbsp;</th>   <th>Name</th>   <th>Type</th>   <th>Length</th>
        </tr>
        <tr>
            <td><input type='text' name='fieldName$z'></td>
            <td><input type='text' name='fieldType$z'></td>
            <td><input type='text' name='fieldLength$z'></td>
        </tr>
        </table><br><br>";
}

<input type='submit' name='submitFieldSetup'>
</form>";
?>

此后我遇到了问题。我一直试图通过将它们放在一个数组中并使用foreach来查看它们来测试它们,但似乎无法到达任何地方。我认为可以使用像$_POST['fieldName$z']这样的东西,但我想我错了。

我只需要了解如何获取第二个文件中的所有输入。有任何想法吗?提前致谢! :)

1 个答案:

答案 0 :(得分:1)

如果fieldsNum是一个数字,for在这种情况下应该没问题,只需正确连接值:

echo "<form name='formSetupFields' method='post' align='center' action='third.php'>";
    echo "<table align='center'>";
        echo '
        <tr>
            <th rowspan=2></th>   <th>Name</th>   <th>Type</th>   <th>Length</th>
        </tr>';
        for ($z = 1; $z <= $_POST['fieldsNum']; $z++) {
            echo "
                <tr>
                    <td><input type='text' name='inputs[$z][name]'></td>
                    <td><input type='text' name='inputs[$z][type]'></td>
                    <td><input type='text' name='inputs[$z][length]'></td>
                </tr>
                ";

        }
    echo '</table><br><br>';
    echo "<input type='submit' name='submitFieldSetup'>";
echo '</form>';

然后在third.php;

if(isset($_POST['inputs'])) {
    $inputs = $_POST['inputs'];
    foreach($inputs as $input) {
        echo $input['name'];
        echo $input['type'];
        echo $input['length'];
    }
}