我想要实现的是 AJAX 将客户的数据加载到页面中(这有效),然后我在引入的一个字段中有一个公司 ID。我需要用不同的公司表交叉检查这个(相同的数据库) 将页面上的公司 ID 替换为名称。
为此,我将全局 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 变量保持空白并且永远不会更改,如果我在 namecheckRecieved() 函数中发出警报(nameresult),它会吐出我想要的内容,那么为什么它没有在 searchRecieved() 函数的每个循环中更改全局变量?