2012-03-01 24 views
0

我已經設置了一個表單,允許用戶從下拉列表中進行選擇,然後單擊提交按鈕將根據他們的選擇將其重定向到適當的頁面。這裏是PHP:基於表單選擇的PHP重定向問題

<?PHP 
function redirect($where){ 
header("Location: $where"); 
} 
if ($_REQUEST['os1'] == 'xp' && $_REQUEST['browser'] == 'ffx'){ 
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/73-prodemo-xp-  firefox'); 
}elseif($_REQUEST['os1'] == 'xp' && $_REQUEST['browser'] == 'ie8'){ 
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/72-prodemo-xp-ie'); 
}elseif($_REQUEST['os1'] == 'win7' && $_REQUEST['browser'] == 'ie8'){ 
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/74-prodemo-win7-ie'); 
}elseif($_REQUEST['os1'] == 'win7' && $_REQUEST['browser'] == 'ffx'){ 
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/75-prodemo-win7- firefox'); 

} 
?> 

我手動告訴查詢送到哪裏去用戶。

我的困境是,我想要一個簡單的行說:「?嗨,_有什麼可以幫你」

空白將填入表格中作爲來電者姓名輸入的名稱。 下面是一個表格的例子:

<form action="" method="post" name="form1"> 
Caller's Name: <input type="text" name="callersname" /><br /> 
<select name="os1">  <option selected="selected" value="xp">XP</option> 
<option value="win7">Win7</option> </select> <br /> 
<select name="browser"> <option selected="selected" value="ie8">IE8</option> 
<option value="ffx">Firefox</option></select> <br /> 
<input type="submit" value="Next" /> 

我對PHP很陌生。如果我創建一個PHP頁面來發布調用者的姓名,那麼我該如何避免頁面重定向到該PHP頁面而不是重定向?我已經使用下拉菜單選項進行了手動設置?

感謝任何advixce

+2

請澄清你的最後一個p aragraph。 – 2012-03-01 02:07:58

+0

你想寫什麼「你好,_,我怎麼幫你?」?在頁面上,您將用戶重定向到?或其他地方?你不指定這個..也請澄清你的最後一段。 – Deleteman 2012-03-01 02:18:43

回答

2

用戶的名稱不在第一頁或處理表單值的同一頁面上(IE爲獲得重定向的腳本),而是要將該信息存儲在數據庫中,或者更簡單地存儲在會話中。

首先,每一頁上初始化會話,你需要將這些信息來自:

session_start(); 

然後,創建一個會話變量(唯一的每個用戶/瀏覽器),像這樣:

$_SESSION['user_name'] = $_REQUEST['callersname']; 

現在,你想找回自己的名字(IE喜)在頁面上只是這樣做是這樣的:

echo "Hi {$_SESSION['callersname']} welcome to mcdonalds how may I help you?"; 
+0

謝謝!這正是我需要的! – dgibbons82 2012-03-01 02:48:53

+0

我看到$ _SESSION ['user_name']通過用戶名持有會話。你也提到過,這也可以通過瀏覽器來執行。這樣做的瀏覽器將是我的最佳選擇。我需要用什麼來代替'user_name'來通過瀏覽器創建會話變量?再次感謝所有的幫助。 – dgibbons82 2012-03-01 04:07:44

+0

忽略以上評論。我想到了。再次感謝大家!我是一個新手,但對這個項目感到非常興奮。 – dgibbons82 2012-03-01 04:28:33

0

在HTML表單將提交到在表單標記的action屬性的值給出的URL。在你的例子中,你有:

action="" 

這告訴瀏覽器將表單提交到當前頁面。

這聽起來像你正試圖在同一步驟中做兩件有點不相關的事情。您是想獲取來電者的姓名,還是讓他們選擇要傳送的網址?如果你想這樣做,只需接受OS1和瀏覽器值作爲POST變量,並根據這些變量的值動態改變頁面,而不是將用戶重定向到完全獨立的頁面。

0

如果你想存儲嘗試使用$_POST代替$_REQUEST ...這可能是問題,太,加action="yourpage.php"告訴碼的形式發送到當前頁面或其他頁面...