如何在 PHP 中停止循环并等待用户输入继续循环


how do I stop looping in php and wait for user input to continue the loop?

是否可以

在 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>