2016-09-01 13 views
0

私はドロップダウン選択オプションを持って、私は1つを選択し、ボタンを提出し、別のページ(NewYork.html、Toronto.html、NewJersey.html)に私を導く上でクリックできるようにしたかったドロップダウンリストにリンクされた送信ボタンの使い方は?

<form action="action_page.php"> 
    <select> 
     <option value = "0">Select your Destination..</option> 
     <option value="1">New York</option> 
     <option value="2">Toronto</option> 
     <option value="3">New Jersey</option> 
    </select> 
    <input type="submit" value="Submit" class="myButton"> 
</form> 
+1

は、フォームは '「action_page.php」'に提出されるべきか?または '.html'文書にリダイレクトされるだけですか? – guest271314

+0

an.html文書にリダイレクト – user2971202

+0

'form'要素から' action = "action_page.php"を削除し、 'submit'イベント、' event.preventDefault() 'を使用して' option'要素の値を ' .html'文書をリダイレクトする必要があります。 'location.href'を' select'要素 '.value'に設定します – guest271314

答えて

0

ますheader()を使用してPHPコードでこれを行い、送信されたフォームの値を使用します。

header('Location: /'.$submittedValue.'.html'); 

もちろん、あなたが唯一の瞬間にドロップダウンから数値を取得しますが、あなたは、ヘッダー機能で使用する文字列にそれを一致させることができるように第1のフォーム入力をチェックする必要があります。

は、ヘッド機能は、ブラウザへの出力が

0

あなたはどのユーザーURL.htmlの文書にvalueoptionの要素を設定することができます任意のechoprint_r()または任意の他の機能よりも、ページアップも高くなければならないことに注意してくださいリダイレクトされます。 submitイベントでformの送信を防ぐにはevent.preventDefault()を使用してください。 select.value"0"でない場合は、あなたが他のページにユーザーをリダイレクトする必要があなたのactionPageでselect.value

HTML

<form> 
    <select> 
     <option value="0">Select your Destination..</option> 
     <option value="NewYork.html">New York</option> 
     <option value="Toronto.html">Toronto</option> 
     <option value="NewJersey.html">New Jersey</option> 
    </select> 
    <input type="submit" value="Submit" class="myButton"> 
</form> 

javascriptの

document.querySelector("form") 
.addEventListener("submit", function(e) { 
    e.preventDefault(); // prevent default action 
    var select = this.querySelector("select"); 
    if (select.value !== "0") { 
    location.href = select.value; 
    } 
}) 
1

location.hrefを設定します。

しかし、セキュリティをチェックして、わからないものにリダイレクトしないでください。
ですから、$array = [1 => "newYork", 2 => "toronto"...]のようにフォームの値を持つ連想配列を使用し、終了を忘れずにリダイレクトに進むことができます:

$redirect = $array[$_POST['value']] + ".html"; 
header("Location: /$redirect"); 
exit(); 
関連する問題