PHP - 如何在表单提交后保留textbox数组的值?

时间:2017-10-17 09:32:13

标签: php forms

我只是有一个问题。

我有一组同名的文本框。 (name =“quantity []”)

如何在提交后保留表单的值?例如,我有5个具有相同名称的文本框。我填写了其中的4个并提交了表格。我想显示一个字段为空的错误,并保留我在提交表单之前输入的值。

如果文本框名称不同,我可以这样做。但如果他们有相同的,我就无法使其发挥作用。

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>">

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>">

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>">

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>">

<input type="submit" name="submit">

感谢您的帮助php人。非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

如果字段数量不固定,即它变化。你应该像这样使用for循环

     <?php

        if(!empty($_POST['quantiy'])){

        $count =count($_POST['quantity']);

        for($i=0; $i<$count; $i++){

        ?>
        <input type="text" name="quantity[]" value="<?php echo $_POST['quantity'][$i];?>">

        <?php

               }
            } 
    else
    {

    ?>

    <input type="text" name="quantity[]" value="">

    <input type="text" name="quantity[]" value="">

    <input type="text" name="quantity[]" value="">

    <input type="text" name="quantity[]" value="">

<?php
    }
        ?>

答案 1 :(得分:2)

您的问题是在提交表单时您丢失了对输入字段的引用。由于所有字段都具有相同的名称,您无法确定,哪一个提供了输入。

你可以做什么:你可以通过弹出$ _POST来填充你的表单字段,如下所示:

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo array_pop($_POST['quantity']);?>">

以下是:

  • 提交后,您的$ _POST变量将根据哪些输入具有任何值
  • 进行填充
  • 在重新呈现后提交$ _POST [&#39;数量&#39;]数组被反汇编,最后一个元素被删除并填充表单输入

注意事项:如果用户使用此代码填写字段1,2和4,则将填充字段1,2和3。