(这可能会让人感到困惑)我有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, 罗素
答案 0 :(得分:0)
我会使用Ajax。您可以在JS中存储计数器变量,当它达到10时,您只需禁用表单或向用户显示消息。
如果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>