0

ボックスの選択した値に応じて<select>、別のページに送信したいフォームがあります。

<select>これを行うための最良の方法はわかりませんが、おそらく最良の方法は、常に投稿する中間ページを用意し、中間ページにボックスから送信された値をチェックさせ、POST値をに転送することだと思います。それが何であるかに応じて異なるページ。これが最善の方法である場合、どうすればそれを行うことができますか?そうでない場合、最善の方法は何ですか?

ありがとう!!

4

4 に答える 4

1

それは確かにユーザーの互換性のための最良の方法でしょう。

HTTPリダイレクトヘッダーを使用してそれを行うことができます。

header("Location: http://www.example.com/");

これは、ページに出力される前に呼び出す必要があります。

そうすれば、ユーザーは進む/戻るボタンを押したときに中間ページにたどり着くことさえありません。

私が見る他の唯一のオプションは、javascriptを使用してフォームのターゲットを変更するか、それらの行を変更することですが、いくつかの注意点があります(javascriptを有効にする必要があり、より複雑なコード、リダイレクトは実際にはページのビューで発生しないはずです)。

于 2010-01-14T14:35:21.737 に答える
1

THatは良い方法です。action別の方法は、Javascriptを使用してクリックをインターセプトし、フォームとそのプロパティを書き直すsubmit()ことです。

ただし、PHPの場合:

先頭ページ:

<form action="intermediary.php" method="post">
  <input id="submitTo">
    <select value="1">goToFirstPage</select>
    <select value="2">goToSecondPage</select>
  </input>
</form>

2ページ目:

<?php
  $url = "";
  if($_POST["submitTo"] == "1") $url = "http://mysite.com/firstPage.php";

 if($_POST["submitTo"] == "2") $url = "http://mysite.com/secondPage.php";

 header ("Location: $url");    
?>

最初のページに実際のURLを入れないでください。そうしないと、セキュリティ上の大きな問題が発生します。

于 2010-01-14T14:39:31.357 に答える
0

javascriptを使用してフォームのターゲットを変更します

本当にphpを使用したい場合は、curlを試してください。

于 2010-01-14T14:35:51.453 に答える
0

javascript

function form_submitted(){
   switch(document.myform.select_name.value){
     case 'whatever':
        document.myform.target.value = "whatever_you_need";
        break;
     case 'whatever2':
        document.myform.target.value = "whatever_you_need_2";
        break;
    }
}

次に、この関数を「onSubmit」属性を使用してフォームに割り当てるか、その関数を呼び出して関数の最後にdocument.myform.submit()を追加するボタン(送信ボタンではなく)を用意します。

于 2010-01-14T16:19:37.563 に答える