0

私が達成しようとしているのは、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 //////
          }
}

ノート:

  1. company_check.php から受け取る結果は 1 つだけなので、namecheckRecieved() 関数でループは発生しません。
  2. JS コンソールにエラーはありません。
  3. namecheckRecieved() 関数内でアラート (nameresult) を実行すると、nameresult 変数は空白のままになり、変更されることはありません。
4

2 に答える 2