再次使用到了DWR没办法,遇到怎么把多个参数传递到回调函数里面的问题,有点棘手,嘿嘿不过不怕,先找百度,查了半天找到了,嘿嘿,我就先做个记录。
function getXMLData(id){
ReadXML.readTestXML(callback);
}
var callback = function callBack(data){
alert(id);
alert(data[id-1].devType);
alert(data[id-1].ipAddress);
alert(data[id-1].serverPort);
alert(data[id-1].username);
alert(data[id-1].password);
}
getXMLData("5");
其实这样子的写法,alert(id) 会提示你id未定义的。
那么怎么解决呢??
function getXMLData(id){
ReadXML.readTestXML(function(data){callback(data,id)});
}
var callback = function callBack(data,id){
alert(id);
alert(data[id-1].devType);
alert(data[id-1].ipAddress);
alert(data[id-1].serverPort);
alert(data[id-1].username);
alert(data[id-1].password);
}
id 就可以弹出了来了,就这样就可以传递多个参数了,其实后面加上id,name,pwd都可以传递。
还有一个问题就是怎么解决在回调函数中把我从服务端取回的数据,取到其他的函数中去使用,
这里你就可以采用拼接字符串的方式,做成一个table 然后放到一个div里面去,但是这个div可以设置成不显示,
然后你就可以通过getElementById()的方式去取到你在回调函数中的数据了。
function getXMLData(id){
ReadXML.readTestXML(function(data){callback(data,id)});
}
var callback = function callBack(data,id){
if(id!=0){
var table = "<TABLE><TR><TD id=\"type\">"+data[id-1].devType+"</TD></TR>
<TR><TD id='ip'>"+data[id-1].ipAddress+"</TD></TR>
<TR><TD id='port'>"+data[id-1].serverPort+"</TD></TR>
<TR><TD id='user'>"+data[id-1].username+"</TD></TR>
<TR><TD id='pwd'>"+data[id-1].password+"</TD></TR></TABLE>";
document.getElementById("div").innerHTML=table;
document.getElementById("div").style.display='none';
}
}
function play(){
var ip=document.getElementById("ip").innerHTML;
var username=document.getElementById("user").innerHTML;
var ports=document.getElementById("port").innerHTML;
var pwd=document.getElementById("pwd").innerHTML;
var chan=index;
var type=document.getElementById("type").innerHTML;
alert(ip);
alert(username);
alert(ports);
alert(pwd);
alert(chan);
alert(type);
}
ok 采用这种方式你就可以取到回调函数中的从服务器端返回的数据了。