2012-01-06 57 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更快,工作频率更高。