2012-01-06 4 views
0

私はPHPの選択オプションで単純な問題があります。シンプルなPHP選択オプションプログラミング

ページに5つの選択肢&送信ボタンがあります。オプションを選択すると、特定のWebページに移動する必要があります。例: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

+2

一度に1つのオプションだけが意味を持つ場合、選択ボックスは' 'multiple =" multiple "' 'を持つのはなぜですか?同様に、配列のように扱っていないとき、なぜそれが 'test []'であるのでしょうか? – cHao

答えて

5

これは、1つのサイトにリダイレクトしたいので、複数のものではなく、単純なものでなければなりません。ここでのコードは次のとおりです。

<?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

+0

私は彼がテストスクリプトとしてこれを使用していると考えて以来、私はそれをそのまま残しました。しかし、あなたは正しいです、頭のためのthx。 – redmoon7777

0

あなたは宣言してきたように:

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

testは、このようにあなたは、配列の最初のオブジェクトを取るか、または未使用の[]を削除する必要があり、配列です。ところで、あなたはHTTPリダイレクションを行うことができます.HTMLリダイレクションは、JavaScriptのものより速く、より頻繁に動作します。

関連する問題