2010-09-10 22 views
0

好的,這是我的考驗;我希望有人能在這裏指出我正確的方向。我有一個表單,它是一個多頁面的PHP嚮導,但每個後續頁面都依賴於選擇框中的選定選項。點擊提交時,我將它重定向到適當的頁面,但信息沒有發佈到頁面。所以我的問題是我如何發佈到這兩個頁面,以便哪一個加載下一個可以在前面輸入信息。這是我現在的代碼的一個例子。PHP:如何使用if語句發佈到多個頁面

<html> 
<head></head> 
<body> 


<?php 

//let's start the session 
session_start(); 

//now, let's register our session variables 
session_register('info from last page'); 

//finally, let's store our posted values in the session variables 
$_SESSION['info from last page'] = $_POST['info from last page']; 
echo $_SESSION["info from last page"]; 


//redirect to appropriate page based on selected option 
    function redirect($where){  
     header("Location: $where"); 
    } 
    if ($_REQUEST['audio'] == 'option1'){ 
     redirect('http://www.avwebcasting.com/ordering_system/webcast/step3ressless.php'); 
    }elseif($_REQUEST['audio'] == 'option2'){ 
     redirect('http://www.avwebcasting.com/ordering_system/webcast/step3oa.php'); 
    } 

?> 


<form method="post" id="step2" name="step2" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 

<label> 
<span>*Audio:</span> 
<select name="audio" class="select"> 
<option value="option1" selected="selected">option1</option> 
<option value="option2">option2</option> 
</select> 
</label> 
        <INPUT TYPE="submit" name="submit"/> 



</body> 
</html> 
+0

只是一個毫不相關的批評,試圖把它作爲它的建設性批評。 「讓我們開始會議」是一個壞評論。它比它記錄的代碼更長,已經足夠清楚了 - 沒有人需要評論來知道'session_start'開始會話。你應該記錄你的代碼背後的邏輯,而不是代碼本身。與'session_register'一樣。你的意見應該表明你爲什麼註冊變量,而不是你註冊變量;任何人都可以看到這就是你正在做的事情,但是你不能立即告訴你爲什麼要這樣做。 – meagar 2010-09-11 16:16:33

回答

0

好的,經過幾個小時的研究,我回答了我自己的問題。事實證明,它與一些JavaScript的完美作品;所以我發佈了自己的問題的答案,以幫助任何可能來到這些十字路口的人。

<script type="text/javascript"> 
function PostMultiple() 
{ 
if(document.step2.audio[0].selected == true) { 
    document.step2.action = 'http://gohere.html'; 
    } 
if(document.step2.audio[1].selected == true) { 
    document.step2.action = 'http://gothere.html'; 
    document.myform.method = 'get'; 
    } 
return true; 
} 
</script> 
0

可以在期權價值得到php文件的名稱reditect,那麼你可以使用一個在線解決方案:

redirect('http://www.avwebcasting.com/ordering_system/webcast/' . stripslashes($_REQUEST['audio']) . '.php'); 

或我錯過理解對於初學者的原因,你的問題

3

會議不工作是因爲會話之前你輸出數據開始

<html>   <<< 
<head></head> <<< 
<body>   <<< 
<?php 
//let's start the session 
session_start(); //this fails 

這個S應該是這樣的

<?php 
//let's start the session 
session_start(); //now it works :D 
?> 

<html> 
<head></head> 
<body> 
+0

試過這個,但是信息仍然沒有被帶過 – NewB 2010-09-11 00:11:40

+0

也請在開發模式中打開錯誤報告whiles,在'session_start()'之前加'error_reporting(E_ALL)'以查看PHP – RobertPitt 2010-09-11 10:53:31

0

這個。

<? 
session_start(); 
?> 

<html> 
<head></head> 
<body> 

<? 
$locationArray = array(
'option1' => '/ordering_system/webcast/step3ressless.php', 
'option2' => '/ordering_system/webcast/step3oa.php' 
); 

if(isset($_REQUEST['audio'])){ 
    if(array_key_exists($_REQUEST['audio'],$locationArray)){ 
     $location = $locationArray[$_REQUEST['audio']]; 
     header('Location: '.$location); 
     exit; 
    } 
} 

// No one submitted the audio variable.. fall through to the form 

?> 


<form method="post" id="step2" name="step2" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 

<label> 
<span>*Audio:</span> 
<select name="audio" class="select"> 
<option value="option1" selected="selected">option1</option> 
<option value="option2">option2</option> 
</select> 
</label> 
        <INPUT TYPE="submit" name="submit"/> 



</body> 
</html> 
+0

'if(array_key_exists($ _REQUEST ['audio']))'...請修改。 – RobertPitt 2010-09-10 23:39:17

+0

嘗試Ollie的例子,但信息仍然沒有被結轉。感謝所有的回覆 – NewB 2010-09-11 00:13:42

+0

哇,謝謝羅伯特。那時我完全有一個腦筋急轉彎。 – Ollie 2010-09-11 00:15:37