2012-03-26 80 views
1
<form id="enter" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validateForm(this);" > 
    <p> 
     <input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" /> 
    </p> 
</form> 

<script type="text/javascript"> 
    function myClickHandler(){ 
     if(validation()){ 
        showConfirm(); 
     } 
    } 
</script> 

<?php 
    session_start(); 

    $outputDetails = ""; 
    $outputDetails .= "<table id='sessionDetails' border='1'> 
          <tr> 
           <th>Number of Sessions:</th> 
           <th>{$_POST['sessionNum']}</th> 
          </tr>"; 
    $outputDetails .= "</table>"; 
    echo $outputDetails; 
?> 

上面是我的窗體的代碼。我想要做的是,如果用戶提交表單,那麼它將返回到自己的頁面。但是,如果「SessionNum」等於「1」,那麼不是將表單發佈到自身,而應該發佈表單或換句話說導航到「session_marks.php」頁面,但它不是idng,如果sessionNum等於1,則它仍然提交表單或導航到它自己的頁面,我做錯了什麼?窗體無法導航到其他頁面

也可以說它顯示的數字爲sessionNum,然後我提交表單,它將表單提交回自己,數字消失,我該如何保持提交表單到自身時,顯示的號碼是多少?

感謝

+1

爲什麼要在$ _SERVER變量上使用'htmlentities()'? – Blake 2012-03-26 17:26:38

+0

我不知道這只是我在使用PHP_SELF時從網上看到的一個示例 – user1292857 2012-03-26 17:29:21

+0

您能向我們展示所有這些的最終結果嗎?出來的實際HTML? – YonoRan 2012-03-26 17:30:40

回答

1

哪裏是有條件的邏輯改變形式後的目標是什麼?我看到的form標籤是這樣的:

action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" 

這將始終設置formaction是當前PHP文件,沒有任何其他的PHP文件。如果你想有條件地發佈到不同的文件,你需要在那裏添加條件邏輯。像這樣的東西(雖然可能有更好的方法來做到這一點,請記住,我非常練出來的用PHP):

action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>" 

至於數量消失,我沒有看到任何表單元素名稱爲sessionNum。如果沒有這樣的表單元素,那麼$_POST['sessionNum']中將沒有任何內容,所以數字將「消失」,因爲沒有值顯示。

+0

嗨,sessionNum來自上一頁,用戶在前一頁的文本框中輸入一個數字,然後在當前頁面中顯示前一頁輸入的數字。 – user1292857 2012-03-26 17:39:21

+0

@ user1292857:這將適用於當前頁面的初始文章。但是,一旦他們重新發布到當前頁面,如果在發佈的表單中沒有'sessionNum',則不會顯示任何值。 – David 2012-03-26 17:40:12

+0

有沒有辦法解決這個問題,或者當我把這個問題提交給自己的時候,我會採取怎樣的方式? – user1292857 2012-03-26 17:44:35

0

如果以上是您的實際代碼,則session_start();必須放在任何其他輸出(HTML,PHP的回聲,打印等)之前...

+0

我已經把session_start()放在開始,但仍然做同樣的事情,當數字爲'1'時,它不會導航到另一個頁面,它會導航到具有通知的同一頁面 – user1292857 2012-03-26 18:04:47

相關問題