私はtaking info put into a form and using it to populate a pageの前の2つの質問をしており、1つはredirect you to a page when you submit the formフォームのドロップダウンで選択した内容の今私は同じフォームのために働くために、これらの2つのことが必要です。フォームを入力してドロップダウンで選択したページに移動し、フォームの他の情報を使用して選択したページを入力します
フォームから情報を取って、次のページをpopulaeするためにそれを使用するためのコードは次のとおりです。
<?php
$firstname = $_GET['personsName'];
echo "My Name is" .$firstname;
?>
、フォームは次のようになります。
<form action="letter.php" method="get">
<input type="text" name="personsName"></input>
<input type="submit" value="submit">
</form>
コードを選択しますページは:
$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
}
私はこれらの両方が同じフォームで動作するために必要ですが、私はできませんでしたそれを理解する。私が試みたのは:
<form action="<?=$pages?>" method="POST">
<input type="text" name="name" /><br />
<select name="letter">
<option value="Page 1">
Page 1
</option>
<option value="Page 2">
Page 2
</option>
<option value="Page 3">
Page 3
</option>
</select>
<input type="submit" value"Print" />
</form>
これは明らかに間違っています。私はこのフォームを入力して、選択したページにリダイレクトし、フォームに入力された他の情報をページに入力します。問題は、私がすでに一緒にしてきた答えをどうやって得るのか分かりません。すべての助けてくれてありがとう!
現在のコードはこれです:
<script type="text/javascript">
$(function UpdateFormAction(){
alert('Launched event handler');
var form = document.getElementById('MyForm');
var list = document.getElementById('PageList');
alert('List item numer ' + list.selectedIndex);
var desiredAction = list.options[list.selectedIndex].value
alert('Desired action set to ' + desiredAction);
form.action = desiredAction;
});
</script>
形式は次のとおりです。
<form id="MyForm" action="letter.php" method="POST">
<input type="text" name="name" /><br />
<select id="PageList" name="letter" onchange="UpdateFormAction();">
<option value="letter.php">Page 1</option>
<option value="letter2.php">Page 2</option>
<option value="letter3.php">Page 3</option>
</select>
<input type="submit" value"Print" />
</form>
実際のフォームでは、私がリダイレクトされたページを移入するために情報の10枚を得ることと思います。それはあまりにもこのメソッドを使用するか? – Zach
URLの長さには制限があります(IE6の場合は1024文字、それ以外のすべてのブラウザでは4096以上)ので、データが何であるかによって異なります。単純な入力フィールドはうまくいくはずですが、大きなテキストエリアが問題になる可能性があります。 – Basic
ああもちろん、単純なjavascriptを使用すると、ドロップダウンが変更されたときに、フォームの 'action'が適切なページに変わるので、途中にPHPのステップがなく、所望のページ。 – Basic