循环 - 从PHP中的单个文本框名称接受多次输入

时间:2017-07-04 07:40:34

标签: php html forms

(这可能会让人感到困惑)我有2个文本框,可以接受用户十次的颜色和金额:

<form action="" method="POST">
  <i> color </i><input type="text" name="text[]">
  <i> color amount </i> <input type="number" name="num[]">
  <input type="submit" value="Go">
</form>

现在我想要发生的是,而不是为颜色和数量声明十个文本框我只想循环它,以便在第一个颜色和数量被发送后它将再次要求9次而不显示10个文本框为每个名字。有没有办法在PHP中循环它?

感谢。 Regars, 罗素

2 个答案:

答案 0 :(得分:0)

我会使用Ajax。您可以在JS中存储计数器变量,当它达到10时,您只需禁用表单或向用户显示消息。

jQuery.post()

如果Ajax不是一个选项,你总是可以在PHP文件中使用计数器。我建议将它存储在一个会话中。然后,当计数器达到10时,你就不会回应表格或其他东西。

reflect.DeepEqual

编辑:一个基本想法(尚未测试)我会使用button.click来避免任何形式的submision

session_start();
$_SESSION['counter'] = (!$_SESSION['counter']) ? 0 : $_SESSION['counter'];
if($_POST['submit']) {
   $_SESSION['counter']++;
}

答案 1 :(得分:0)

@russel 试试这个。这个是纯粹的PHP。

<html>
<head>
    <title></title>
</head>
<body>
    <?php
    session_start();

    if(!isset($_POST['submit']))
    {

        $_SESSION['count']=0;

    }
    ?>
    <form action="" method="POST">
  <i> color </i><input type="text" name="text">
  <i> color amount </i> <input type="number" name="num">
  <input type="submit" value="Go" name="submit">
</form>

<?php
    if(isset($_POST['submit']))
    {
        echo $_POST['text'];
        echo "<br>";
        echo $_POST['num'];
        echo "<br>";
        $count=$_SESSION['count']++;
        if($count==9)
        {
            echo "you have received 10 values";
            echo "<br>";
            echo "press ok to get again";
            ?>
            <form method="post">
                <input type="submit" name="ok" value="ok">
            </form>
            <?php
            if(isset($_POST['ok']))
            {    
            header("Refresh:0");
            }
        }
    }
    ?>
</body>
</html>