我想要实现的是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 //////
}
}
注意:
答案 0 :(得分:0)
我要删除之前的所有评论,并说你只需要一个ajax调用。一切都应该在服务器端完成。这意味着获取公司ID,并使用它来获取公司的名称,然后将所有内容传递回客户端。从它的外观来看,当你第一次访问服务器时,你可以在服务器上进行很多的回调来获取每个公司的名称。这样你就不用担心做两个ajax调用 虽然看起来你做了两次以上的调用,这取决于数据的长度
答案 1 :(得分:0)
试试这个
function namecheckReceived(xmlHTTP){
var n_data = JSON.parse(xmlHTTP.responseText);
nameresult = n_data[0].name;
client_call();
}