2011-01-23 14 views
1

これは私が約filling out a php form and using those answers to populate a pageについて質問した前の質問に関連しています。フォームの記入が完了したら、フォームを記入している間に選択したドロップダウンでフォームを送信した後、どのページに行くかを決めたいと思います。PHPフォームのリダイレクトは、ドロップダウンの選択に基づいてオフになります

たとえば、あなたが入力します。

あなたのお名前

電話番号ダウンあなたが選ぶだろうドロップから次に

"ページ3"

メール。

次に送信を押します。

ドロップダウンで選択したものが「ページ3」にリダイレクトされる必要があります。私はこれがシンプルでなければならないことを知っている、私はちょうどそれを行う方法を理解するように見えない。すべての助けにあらかじめありがとう!

答えて

1

スクリプトでフォームがに提出:

if ($_POST['dropdown-name'] == 'Page 3') { 
    header("Location: page3.php"); 
} else if ($_POST['dropdown-name'] == 'Page 4') { 
    header("Location: page4.php"); 
} // ... etc 

$pages = array('Page 1' => 'page1.php', 'Page 2' => 'page2.php', 'Page 3' => 'page3.php'); 

if (array_key_exists($_POST['dropdown-name'], $pages)) { 
    header("Location: " . $pages[$_POST['dropdown-name']]); 
} else { 
    echo "Error processing form"; // submitted form value wasn't in your array, perhaps a hack attempt 
} 
+0

あなただけのすべての新しいページのための "場合、他を" 入れておくのでしょうか? – Zach

+0

膨大な数のページがある場合を除き、そうです。多すぎる場合は、それらを配列に配置し、フォームデータを配列と比較することができます。 –

+0

まあ、私は本質的にあなたが与えたこの答えのように動作する必要がありますが、たくさんのページがあります。それらを配列に入れるのはどうすればいいですか? – Zach

0

<script type="text/javascript"> 
function OnChangeForm() 
{ 
    var e = document.getElementById("changeFormAct"); 
    var strType = e.options[e.selectedIndex].value; 
    if(strType == '1') 
    { 
     document.myform.action ="football.html"; // here myform is the name of theform 
    } 
    else 
    if(strType == '2') 
    { 
     document.myform.action ="cricket.html"; 
    } 
    else 
    if(strType == '3') 
    { 
     document.myform.action ="hockey.html"; 
    } 
    else 
    if(strType == '4') 
    { 
     document.myform.action ="tennis.html"; 
    } 
    return true; 
} 
</script> 

<select onchange="OnChangeForm" id="changeFormAct"> 
    <option value="1">Football</option> 
    <option value="2">Cricket</option> 
    <option value="3">Hockey</option> 
    <option value="4">Tennis</option> 
</select> 
関連する問題