javascript関数が呼び出されてからページをリロードするときにphpファイルを実行しようとしています。ページがリロードされますが、phpファイルが実行されません。
function changeR()
{
$.ajax({ url: 'win.php?id=1' });
window.location.reload()
}
javascript関数が呼び出されてからページをリロードするときにphpファイルを実行しようとしています。ページがリロードされますが、phpファイルが実行されません。
function changeR()
{
$.ajax({ url: 'win.php?id=1' });
window.location.reload()
}
ajax呼び出しが完了したら、リロードを実行します。成功イベントを使用できます。
function changeR()
{
$.ajax({ url: 'win.php?id=1' ,
success: function(data) {
window.location.reload()
}
});
}
ajax呼び出しが成功した場合、成功イベントが実行されることに注意してください。成功またはエラーに関係なくコードを実行する場合は、次のことを検討してください[complete][1]
。done
window.location.href=window.location.href
または、代わりに試すことができますwindow.location.reload()
通常、人々はajaxを使用して、ページをリロードせずに部分的なページ更新を行います。ajax呼び出しの後で、ページ全体をリロードしてもよろしいですか?
編集:コメントによる
このajax呼び出しを介してphp変数値を渡したい場合は、次のようにすることができます
値をいくつかのhtml要素に設定します(例:ID txtIDの非表示要素)
//Reading the value of an html element with id `txtId`
var val=$("#txtID").val();
$.ajax({ url: 'win.php' ,
data: { id: val },
success: function(data) {
window.location.reload()
}
});
ここでは、という名前のパラメータで要素の値を送信しますid
。FirebugまたはFiddlerを使用して、どのような値が発生しているかを確認できます。
その他のオプションはこちら:http ://api.jquery.com/jQuery.ajax/
AJAX呼び出しは非同期です。つまりwindow.location.reload()
、AJAXリクエストが終了する前に実行します。代わりに、AJAXリクエストが完了するまで待ってから、リロードしてください。
function changeR()
{
$.ajax({
url: 'win.php?id=1'
}).done(function() {
window.location.reload()
});
}
まず、スクリプトのwin.php
実行を妨げる可能性のあるエラーがスクリプトにないことを確認します。
次に、ajax呼び出しが完了した後にのみリロードを実行します。これを実現する簡単な方法は、設定をにasyc
設定することfalse
です。このように、呼び出しは同期的に実行されます。つまり、実行が完了するのを待ってから続行します。
function changeR()
{
$.ajax({ url: 'win.php?id=1', async: false });
window.location.reload()
}
これを「changeR」関数に試してみてください。
$.ajax({
type: "GET",
url: "win.php",
data: "id=1",
success: function(msg){
window.location.reload();
}
});