是否可以在while或for中停止php循环并等待用户输入继续循环?
例如,我循环一个表单5次。 我希望每个表单在我提交表单后逐个显示,而不是所有5个表单一起出现
所有建议都非常感谢.. :)
答案 0 :(得分:0)
这看起来像这样:
(这里我使用会话,所以如果提交一次,我每次都可以显示每个表格)
<?php
session_start();
if(isset($_POST['submit1']) && !empty($_POST['test1']))
$_SESSION['form2'] = TRUE;
if(isset($_POST['submit2']) && !empty($_POST['test2']))
$_SESSION['form3'] = TRUE;
echo '
form1:
<form action="" method="post">
<input type="text" name="test1">
<input type="submit" name="submit1" value="submit">
</form>
';
if(isset($_SESSION['form2']) && $_SESSION['form2']) {
echo '
form2:
<form action="" method="post">
<input type="text" name="test2">
<input type="submit" name="submit2" value="submit">
</form>
';
}
if(isset($_SESSION['form3']) && $_SESSION['form3']) {
echo '
form3:
<form action="" method="post">
<input type="text" name="test3">
<input type="submit" name="submit3" value="submit">
</form>
';
}
?>
答案 1 :(得分:0)
PHP在服务器上执行,因此您在浏览器视口中看到的是脚本的输出,这是很久以前执行的。这意味着不会干扰while
循环
但是,有一个解决方案可以解决您的问题。
首先是基于if-statements
和会话
<?php
session_start();
// determine which form to display
if ($_REQUEST["form1"]) {
$_SESSION["form"] = 1;
}
elseif($_REQUEST["form2"]) {
$_SESSION["form"] = 2;
}
elseif($_REQUEST["form3"]) {
$_SESSION["form"] = 3;
}
if($_SESSION["form"] >= 1) {
echo ' Form 1 output ';
}
if($_SESSION["form"] >= 2) {
echo ' Form 2 output ';
}
if($_SESSION["form"] >= 3) {
echo ' Form 3 output ';
}
?>
第二种可能是jquery利用表单ID
<head>
<script>
$(document).ready(function() {
$("#form1").submit(function(event) {
// prevent default submitting and display the next form
});
$("#form2").submit(function(event) {
// prevent default submitting and display the next form
});
// and so on
});
</script>
</head>