2014-11-16 204 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>