我想實現的是AJAX負載的客戶端數據到一個頁面(這個工程),然後我有一個公司的ID在一個領域帶來英寸我需要與不同的公司表(相同的數據庫)來替換頁面上的公司標識。AJAX和一個全局變量不起作用,我有這個錯誤嗎?
爲了得到這個我已經設置了一個全局的JavaScript變量爲空,然後解僱了主AJAX請求獲取所有的初始客戶端數據,然後在解析循環(客戶端)我需要啓動一個函數,公司的表名來獲得。我目前的問題是全局變量沒有被設置爲第二個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因此沒有 環在namecheckRecieved()函數接收。
- JS控制檯沒有錯誤。
- 的nameresult變量保持爲空白,並且永遠不會 改變,如果我提醒(nameresult)的namecheckRecieved()內 功能它吐出來什麼,我想那麼,爲什麼不與searchRecieved的每個循環改變 全局變量()函數?
阿賈克斯異步。如果您等待x秒(或者最好在成功回調中訪問它),您的變量將被填充。 –
因此用公司ID號碼填充頁面,然後在連續回調中用名稱替換ID號碼? – Aaron
不,把你的'/////把所有數據以可讀格式吐出來//////'成功回調,不要使'nameresult'全局。 –