是否可以
在 while 或 for 中停止 php 循环并等待用户输入继续循环?
例如,我循环单个表单 5 次。我希望每个表单在提交表单后一一显示,而不是所有 5 个表单一起出现
所有建议都非常感谢..:)
这可能看起来像这样:
(在这里我使用的是会话,因此如果每个表单提交一次,我可以每次显示它们)
<?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>
';
}
?>
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 ';
}
?>
第二个可能是使用表单ID的jquery。
<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>