2014-11-16 155 views
-1

是否有可能停止php循环在while或等待用户输入来继续循环?如何停止在PHP循环,并等待用户输入来继续循环?

例如,我循环5次单个表单。 我希望每个形式一一呈现我提交表单后,而不是所有5种形式一起出现

所有的建议是高度赞赏.. :)

+2

您可以使用isset检查前面的表格,提交 – Rizier123

+0

与@ Rizier123同意。您可以检查以前的表单是否已提交。您可以使用javaScript来检查它。 – shuvrow

回答

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> 
     '; 
    } 

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