2016-08-17 40 views
0

我有一個表單,這個表單在一個叫做question1.php的頁面上,當我按下提交按鈕時,我想要它加載question2.php。php代碼運行後載入新頁面?

<form action="question2.php" method="post"> 
    <input type="radio" name="ans" value="cuboid"> 
    <input type="radio" name="ans" value="cone"> 
    <input type="radio" name="ans" value="cylinder"> 
    <input type="radio" name="ans" value="sphere"> 
    <input type="submit" value="submit" name="submit"> 
</form> 

但我也有這個PHP代碼

<?php 
    if(isset($_POST['submit'])) { 
     if(isset($_POST['ans'])) { 
      $selected_answer = $_POST['ans']; 
      if($selected_answer == "cuboid") { 
       $_SESSION["cuboid"] = ((int)$_SESSION["cuboid"]) + 1; 
      } 
     } 
    } 
?> 

編輯:我做了一個簡單的演示,試圖更好地解釋我自己,我有三頁。

page1.php中

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<body> 

<form action="page2.php"> 
    <input type="submit" value="submit" name="submit"> 
</form> 
<?php 
// Set session variables 
$_SESSION["favcolor"] = "green"; 
?> 
</body> 
</html> 

使page2.php

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<body> 
    <form action="page3.php" method="post"> 
     <input type="radio" name="ans" value="color"> 
     <input type="submit" value="submit" name="submit"> 
    </form> 
<?php 
// Echo session variables that were set on previous page 
if(isset($_POST['submit'])) { 
    if(isset($_POST['ans'])) { 
     $selected_answer = $_POST['ans']; 
     if($selected_answer == "color") { 
      $_SESSION["favcolor"] = "red"; 
     } 
    } 
} 
?> 
</body> 
</html> 

而且page3.php

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<body> 

<?php 
    echo "Favorite color is " . $_SESSION["favcolor"] . "."; 
?> 

</body> 
</html> 

所以在第一頁上,我宣佈會話變量 「favcolor」,然後在第二頁上,如果用戶選擇了我想將顏色更新爲紅色的單選按鈕,但它不會爲我提供幫助第三頁它仍然是印刷綠色

+0

你可能忘了'在session_start()'。沒有開始會話,沒有保存/傳播的數據 –

+0

什麼?你應該真正閱讀更多關於http:// php的真實內容。淨 –

+0

我有session_start(),在我的測驗結束時(5個問題),我可以顯示會話變量,但他們沒有被增加時,他們應該是 – Dfarrelly

回答

1

您在page2.php上有問題,因爲您在page3.php上提交表單,但是您正在處理page2.php上的提交請求。所以我爲你糾正。

page1.php中

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
    <body> 
    <form action="page2.php" method="post"> 
     <input type="submit" value="submit" name="submit"> 
    </form> 
    <?php 
    // Set session variables 
    $_SESSION["favcolor"] = "green"; 
    ?> 
    </body> 
</html> 

使page2.php

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
<body> 
    <form action="page3.php" method="post"> 
     <input type="radio" name="ans" value="color"> 
     <input type="submit" value="submit" name="submit"> 
    </form>   
</body> 
</html> 

page3.php

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
<body> 
    <?php 
    // Echo session variables that were set on previous page 
    if (isset($_POST['submit'])) { 
     if (isset($_POST['ans'])) { 
      $selected_answer = $_POST['ans']; 
      if ($selected_answer == "color") { 
       $_SESSION["favcolor"] = "red"; 
      } 
     } 
    } 
    echo "Favorite color is " . $_SESSION["favcolor"] . "."; 
    ?> 
</body> 
</html> 
0

我希望這應該工作。

$_SESSION["cuboid"] = isset($_SESSION["cuboid"]) ? $_SESSION["cuboid"] : 0; 
$_SESSION["cuboid"] = ((int)$_SESSION["cuboid"]) + 1; 
+0

你爲什麼只希望? –

+0

你可以看看我的編輯我試圖解釋我自己更好:) – Dfarrelly

+0

看看我的最新答案 –

0

從我所知道的,你正試圖重定向到另一個網頁。

嘗試使用header()函數發送HTTP標頭。

header('Location: http://example.com/page3.php'); 
exit(); 

如果HTTP標頭起初不工作,打開使用ob_start()輸出緩衝區。

0

您正在檢查錯誤頁面中的$ _POST ['ans']。

當用戶輸入page2.php時,您正在檢查'ans',這是在用戶提交包含該輸入元素的表單之前。

當您在page2.php上提交表單時,該操作將請求發送到page3.php,因此您實際上想要將用於將顏色設置爲綠色的if語句移動到頁面3的頂部(在會話開始之下) .php

相關問題