2012-04-17 24 views
0

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

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

何PHPスクリプトが実行されていないことをあなたが言うのですか? PHPスクリプトが実行されないようにするのはエラーではありませんか? –

+0

Iveは正常にphpファイルを別々に実行し、mySQLサーバーを正しく更新します。これを行うと、mySQLサーバーに変更はありません –

答えて

4

ajax呼び出しが完了したらリロードを実行しますか?成功イベントを使用することができます。

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

代わり[complete][1]またはdone

、あなたは関係なく、それが成功またはエラーのあるいくつかのコードを実行しないようにしたい場合は、あなたが考えることができる、AJAX呼び出しが成功であれば、成功イベントが実行されることを心に留めておきますあなたは人々がページのリロードなし部分ページ更新を行うために、AJAXを使用して通常window.location.href=window.location.href代わりのwindow.location.reload()

を試すことができます。 ajaxコールの後でページ全体をリロードしてもよろしいですか?

EDIT:コメントを1として

この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という名前のパラメータの要素の値を送信します。火かき棒やバイブレータを使って、どのような価値があるかを知ることができます。

その他のオプションはここにある:http://api.jquery.com/jQuery.ajax/

+0

これはうまくいかず、.ajaxの前にロードする必要がありますか? –

+0

他にスクリプトのエラーはありますか?あなたのページに? Firebugコンソールを使用してエラーが何であるか確認してください – Shyju

+0

@AaronBoswell:私はスクリプトエラー(余分な閉じ括弧)を持っていました。これを修正しました。今すぐ試してみてください – Shyju

1

AJAX呼び出しは、AJAXリクエストが完了する前に、あなたがwindow.location.reload()を行う意味、非同期です。代わりに、、次にリロードが完了するまで待ってください。まず

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

が正常に実行を妨げる可能性があり、あなたのwin.phpスクリプトに誤りがないことを確認してください。

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

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

は、あなたの「チェンジャー」関数にこれを試してみてください。

$.ajax({ 
type: "GET", 
url: "win.php", 
data: "id=1", 
success: function(msg){ 
    window.location.reload(); 
} 
}); 
+0

1.8で 'success'が廃止されます。代わりに 'done'を使うべきです。 – kba

関連する問題