0

ユーザー入力を検索パラメーターとして受け取り、それらを使用して PHP ページへの AJAX 呼び出しを使用してデータベースを検索する Web サイトを設計しました。この AJAX 呼び出しでは、ajax 引数の "success" セクションで操作して使用する (JSON ファイルとしてフォーマットされた) データがいくつかあることは明らかです。ここに問題があります。ユーザーが入力した絞り込み検索からのデータを、データベース母集団全体からのデータに対して分析できるようにしたいのです。これどうやってするの?別の AJAX 呼び出しを行うだけだと思っていましたが、その呼び出しからのデータには外部からアクセスできないようで、呼び出しの外に「エクスポート」する方法が見つかりません。コードの短縮版は次のとおりです。

$.ajax({
    url: URL for the search .php,
    cache: false,
    data: {
            Various search parameters by the user
        },
    dataType:"json",
    success:function(data){
       Data manipulation and reading the resulting JSON
       $.ajax({
            url:URL2 for the population .php,
            cache: false,
            dataType:"json",
            success:function(data){
                population data stuff here
            },
            error: error stuff


    }
        error: error stuff
}

これが、これまでデータベースにアクセスする方法として私が知っている唯一の方法です。最初のAJAXで使用できるように、どうにかしてその2番目のAJAXからデータを引き出すにはどうすればよいですか?

4

1 に答える 1

1

非同期コールバックを使用しているため、2番目の呼び出しからデータを「抽出」して、最初の呼び出しで使用することはできません。あなたがしなければならないことは、2つの呼び出しを行い、2番目の呼び出し成功コールバック内でそれぞれからのデータを使用することです。これは、成功コールバック関数で使用している変数の名前を一意に変更する場合に実行できます。

$.ajax({
    url: /**/,
    success:function(response1){
       $.ajax({
            url: /**/,
            success:function(response2){
                /* use both response1 and response2 here */
            },
            error: /**/
       })
    },
    error: /**/
})

最初のajax呼び出しのデータを使用して2番目のajax呼び出しを行わない場合は、jQuery.whenのようなものを使用して、両方の要求が終了するのを待つことができます。

于 2012-07-26T19:57:57.740 に答える