私が達成しようとしているのは、AJAXでクライアントのデータをページにロードすることです(これは機能します)。次に、取り込まれたフィールドの1つに会社IDがあります。これを別の会社テーブル(同じデータベース)とクロスチェックする必要があります) をクリックして、ページの会社 ID を名前に置き換えます。
これを取得するには、グローバル javascript 変数を空白に設定し、すべての初期クライアント データを取得するメインの AJAX リクエストを起動し、その解析ループ (クライアント側) 内で、会社のテーブルをチェックして取得する関数を起動する必要があります。名前。私の現在の問題は、グローバル変数が 2 番目の AJAX 結果に設定されていないことです。これが私のコードです:
var nameresult = "";
function namecheck(id){
var request = new Ajax().sendRequest
('../company_check.php',
{ method: 'GET',
parameters: 'id=' + id,
callback: namecheckReceived }
);
}
function namecheckReceived(xmlHTTP){
var n_data = JSON.parse(xmlHTTP.responseText);
nameresult = n_data[0].name;
}
function client_call(){
var request = new Ajax().sendRequest
('../client_data.php',
{ method: 'GET',
callback: searchReceived }
);
}
function searchReceived(xmlHTTP){
var data = JSON.parse(xmlHTTP.responseText);
for(var i=0; i<data.length; i++)
{
namecheck(data[i].company_id);
/////spit out all the data in a readable format //////
}
}
ノート:
- company_check.php から受け取る結果は 1 つだけなので、namecheckRecieved() 関数でループは発生しません。
- JS コンソールにエラーはありません。
- namecheckRecieved() 関数内でアラート (nameresult) を実行すると、nameresult 変数は空白のままになり、変更されることはありません。