2012-01-06 151 views
0

我在php選擇選項中有一個簡單的問題。簡單的PHP選擇選項編程

頁面有5個選項&提交按鈕。當我選擇一個選項時,它應該在特定的網頁上。例如:http://onlinetools.org/tricks/using_multiple_select.php

然後我選擇一個選項&按發送然後它顯示我選擇哪個選項。但我需要去具體的網頁。

我曾嘗試與此代碼,但我失敗了......

<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
<select name="test[]" multiple="multiple"> 
    <option value="http://google.com">one</option> 
    <option value="http://yahoo.com">two</option> 
    <option value="http://facebook.com">three</option> 
    <option value="http://who.is">four</option> 
    <option value="http://myspace.com">five</option> 
</select> 
<input type="submit" value="Send" /> 
</form> 




<?php 
    $test=$_POST['test']; 
echo " 
<script type=\"text/javascript\"> 
window.location = \"$test\" 
</script> 

    "; 
?> 

有人能幫助我嗎?

+0

請不要使用'$ _SERVER ['PHP_SELF']'。只需將動作留空即可。例如'method =「post」action =「」' – Grexis 2012-01-06 06:44:03

+2

爲什麼你的選擇框有'multiple =「multiple」'當一次只有一個選項是合理的?同樣,當你不把它看作一個數組時,爲什麼它是'test []'? – cHao 2012-01-06 06:46:14

回答

5

這應該是一個簡單的選擇不是多個,因爲你只想重定向到一個站點。這裏是代碼:

<?php 
    $test=$_POST['test']; 
    if(isset($test)){ 
     header("Location: $test"); 
    } 
?> 

<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
<select name="test"> 
    <option value="http://google.com">one</option> 
    <option value="http://yahoo.com">two</option> 
    <option value="http://facebook.com">three</option> 
    <option value="http://who.is">four</option> 
    <option value="http://myspace.com">five</option> 
</select> 
<input type="submit" value="Send" /> 
</form> 
+2

'PHP_SELF'很脆弱,可以考慮把它留空。 – Grexis 2012-01-06 06:49:59

+0

我沒有改動,因爲我想他是用這個作爲測試腳本。但你是對的,thx的擡頭。 – redmoon7777 2012-01-06 06:52:30

0

正如你已經聲明:

<select name="test[]" multiple="multiple"> 

test是一個數組,因而你必須採取所述陣列的所述第一對象或刪除未使用的[]。順便說一句,你可以做一個HTTP重定向,它比JavaScript更快,工作頻率更高。