0

javascript関数が呼び出されてからページをリロードするときにphpファイルを実行しようとしています。ページがリロードされますが、phpファイルが実行されません。

function changeR() 
{
    $.ajax({ url: 'win.php?id=1' });
    window.location.reload()
}
4

4 に答える 4

4

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/

于 2012-04-17T23:53:45.363 に答える
1

AJAX呼び出しは非同期です。つまりwindow.location.reload()、AJAXリクエストが終了する前に実行します。代わりに、AJAXリクエストが完了するまで待ってから、リロードしてください。

function changeR() 
{
  $.ajax({
    url: 'win.php?id=1'
  }).done(function() {
    window.location.reload()
  });
}
于 2012-04-17T23:54:12.160 に答える
0

まず、スクリプトのwin.php実行を妨げる可能性のあるエラーがスクリプトにないことを確認します。

次に、ajax呼び出しが完了した後にのみリロードを実行します。これを実現する簡単な方法は、設定をにasyc設定することfalseです。このように、呼び出しは同期的に実行されます。つまり、実行が完了するのを待ってから続行します。

function changeR() 
{
    $.ajax({ url: 'win.php?id=1', async: false });
    window.location.reload()
}
于 2012-04-17T23:59:04.980 に答える
0

これを「changeR」関数に試してみてください。

$.ajax({
type: "GET",
url: "win.php",
data: "id=1",
success: function(msg){
  window.location.reload();
}
});
于 2012-04-18T00:02:12.500 に答える