2010-12-05 29 views
0

AJAXリクエストを送信する前にサーバーにアクセスする必要のあるアプリケーションを構築しています。これを行う唯一の方法は、要求する関数を持つことですAJAXを使用してサーバからの時間、私の関数の中で、私は次のコードを持っているので:自分自身でjQuery AJAX成功関数から戻り値を取得できません

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(html){ return html; } }); 

コードは結構ですが、それがあるとして、私は意味、返されたHTMLへのアクセスを得ることができませんデータは私には役に立たない。私は別の関数にデータを送ろうとしましたが、同じ関数に戻っても、必要と思わない複雑さが加えられます。私はまた、HTMLの値を別の変数に設定してから使用しようとしましたが、これは関数の外部では機能しません。

返される「html」変数にAJAXリクエストからアクセスする簡単な方法があるかどうかを尋ねるので、関数と同じようにページ上の変数を設定できますか?

答えて

1

このようにそれを行いますその議論を通じて時間。

か、この

機能getTime(){

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(time){ // do what ever with time ; } }); 
} 

のようにそれを行うことができ、私はこの方法が簡単に考えていますが、長い機能を持っている場合は、前の一つは、私が考えるクリーナーです。

+0

関数内で変数 'time'ではなく' html'を使って作業しなければならないことを心に留めておいてください!!! –

+0

クイックレスポンスありがとうございますが、関数が呼び出されるたびにサーバの時間を更新する必要があります。 –

+0

@Tom Walters、あなたの歓迎、私はそれをチェックアウトする答えを編集しています! –

0

そこから値を返すことはできません。これは、XHRの要求が正常に完了したときに起動される非同期関数です。あなたはここに別のコールバックを呼び出すために必要があります:あなたは時間getTime()を呼び出して、これまでと呼ばれるAjaxが行われると機能setTime()が呼び出されます、となりますとき

function getTime() { 

     $.ajax({ 
     type:"GET", 
     url:"app/time.php", 
      success: function(html){ setTime(html); } }); 
    } 

    function setTime(time){ 
    //do what ever you want with time 
    } 

を:

function getTime(cb) { 
     .ajax({ 
     type:"GET", 
     url:"app/time.php", 
     success: function(html){ cb(html); } 
     }); 
} 

getTime(function(html) { 
    // do something with html 
}); 
+0

なぜ関数 'getTime();を持っている間に関数' cb() 'をデータで呼び出すのが大好きです。そこには、getTime()でhtmlをどこで取得するのですか?あなたは 'cb();' –

+0

ありがとうAndy、しかし、私は関数を使用するとき、私は変数にサーバーの時刻を設定できるようにしたい、この場合、私はそれを動作させることができませんでした。 –

関連する問題