0

HTMLフォームを投稿した後にユーザーをリダイレクトする方法はありますか?

私はこのような形をしています

 <form action="/URL/" method="post">
     <input type="radio" name="answer" value="W" />W<br />
     <input type="radio" name="answer" value="X" />X<br />
     <input type="radio" name="answer" value="Y" />Y<br />
     <input type="radio" name="answer" value="Z" />Z<br />
     <input type="submit" />
 </form>

ユーザーが送信ボタンをクリックした後、ユーザーを新しいページにリダイレクトすることはできますか?私は少しのjavascriptを見つけましたが、それは投稿が機能しなくなるようでした:S

乾杯!

4

5 に答える 5

6

PHPを使用している場合は、サーバーで実行します。

if( isset( $_POST['answer'])) {
    header( 'Location: http://www.example.com/newurl');
    exit();
}

呼び出しでは完全なURLを使用する必要があり、この場合は呼び出し後に使用header()する可能性が高いことに注意してください。exit()header()

于 2012-08-23T13:06:20.417 に答える
2

単純なphpheader('yourlocation.php');を使用して、フォームからそれらを移動できます。

フォームアクションが指しているPHPは、header()がphpファイルの先頭にある場合でも実行を継続します。

ヘッダーリダイレクトは、ユーザーが更新を押すのを処理します-フォームデータを送信するポイントを超えて既にユーザーを移動しているため、更新しても、フォームの送信なしでページを再度開くだけです。

例は次のとおりです。

<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
// Process Form Data, insert to database, whatever you want... then
header('Location: http://www.example.com/');
?>

その後、ユーザーはwwww.example.comにアクセスし、スパムの更新を好きなだけ行うことができますが、すべての処理はすでに実行されています。情報を再送することはありません(または支払いを再度処理するなど)。

于 2012-08-23T13:05:11.657 に答える
2

はい、リダイレクトヘッダーを使用します。

header("Location: http://new.location.com/w00t");

これは、出力を送信する前に呼び出す必要があります。

ヘッダー呼び出しの後のすべてがまだ実行されることに注意してください!したがって、予期しない結果を防ぐために、die()またはその後に必要になります。exit()

于 2012-08-23T13:05:57.330 に答える
1

送信後にフォームを送信するURLを指定するだけです。

<form action="http://localhost/redirected.php" method="post">

フォームが送信されているかどうかをPHPで確認してから、リダイレクトすることができます。

if (isset($_POST['answer']))
    header('Location: redirect.php');

そして、あなたはjavascript/jqueryでこれを達成することができます。

$('#submit_button').click(function () {
    // do everything with variables
    window.location = 'redirect.php';
});
于 2012-08-23T13:07:13.227 に答える
0

はい、ajaxを使用してデータを投稿し、を使用window.location = 'http://xxxx.com'してユーザーを選択した場所にリダイレクトします。これは、サーバー側のロケーションヘッダー(投稿された他のヘッダーのように)を使用せずにユーザーをリダイレクトすることを前提としています。

于 2012-08-23T13:05:19.643 に答える