現在、ユーザーが情報を入力するフォームがあります。これは、jQuery ajax関数によって処理され、return false;
に設定されているため、ユーザーがフォームを送信した後にページが再ロードされることはありません。ページを再読み込みする必要がありますが、return false;
を削除すると、成功メッセージが表示される前にページが更新されます(このメッセージは、ユーザーがデータを送信した後に表示されます)。
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
//I need to reload page after the above message is shown
}
});
return false;
では、<p> Your article was successfully added!</p>
メッセージが表示された後にページをリロードするにはどうすればよいですか。ユーザーが実際にメッセージを読むことができるように、2〜3秒程度のわずかな遅延があります。
次のような setTimeout()
関数を使用して遅延を追加できます。
// This will reload the page after a delay of 3 seconds
window.setTimeout(function(){location.reload()},3000)
あなたのニーズのために:
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
window.setTimeout(function(){location.reload()},3000)
}
});
return false;
次のようなものでそれを行います:
_function delayedRedirect(){
window.location = "/index.php"
}
setTimeout('delayedRedirect()', 3000)
_
setTimeout
は、リダイレクト関数の呼び出しを遅らせるために使用されます。この場合、どこかを新しいURLにリダイレクトできます(必要な場合に備えて)。
それ以外の場合は、location.reload()
を使用してページを再読み込みします。
setTimeout
メソッドを使用して遅延を取得し、reload
メソッドを使用してページをリロードします。 true
呼び出しのreload
パラメーターに注意して、ページがキャッシュから再描画されるだけでなく、実際に再ロードされることを確認してください。
window.setTimeout(
function(){
location.reload(true)
},
3000
);
JavaScriptのwindow.location.reload()
のような意味ですか?
それを使って与える
setTimeout("window.location='yourpage.php'",3000);
あなたのコードで:
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
setTimeout("window.location='yourpage.php'",3000);//reload after 3 sec.
}
});
return false;
タイムアウトの使用は本当に悪い考えです。
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
var miliseconds = 2000;
$("#st_message").html("<p> Your article was successfully added!</p>");
setTimeout("window.location=window.location", miliseconds);
//I need to reload page after the above message is shown
}
});
<script type="text/javascript">
//
//your action here
//
window.setTimeout(function(){self.parent.location="?list"},3000);//after 3 sec go to (?list or example.html page)
return false;
</script>