DWR中回调函数怎么传递多个参数的问题?

再次使用到了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 采用这种方式你就可以取到回调函数中的从服务器端返回的数据了。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(百度,DWR)