现在有两个列表域,一个视图,分别为fldA,fldB,view1我想在页面不刷新的前提下实现以下的功能,当fldA中的值改变时,fldB将在view1中以fldA为关键字查询,然后将查到的值赋给fldB域中。我想用的方法是在fldA的onchange方法中写个JS,
url= "http://server1/testajax.nsf/view1?readviewentries "
var req = new ActiveXObject( "Microsoft.XMLHTTP ");
req.open( "GET ",url,false); '将url传进去
result = req.responseXML; '返回的值
......
下面我就不知道如何实现了,或者有其他好的方法的朋友支招,谢谢!
------解决方案--------------------
url里应该放一个后台代理的地址,把fldA的值当作关键字传进去,然后查询,得到结果集,最后把生成view的html代码传回给fldB。ActiveXObject应该可以返回字符集的,不用返回xml。
我没写过刷新view,不过原理应该一样。。。
------解决方案--------------------
js大概要这么写,看视图结构了,如果要检索的数据多,还是用代理作搜索的工作,也不用刷新页面
var xmlElement=xmlHttp.responseXML.documentElement;
var len=Number(xmlElement.getAttribute( 'toplevelentries '));
var flda;
var fldb
var i;
for(i=0;i <len;i++)
{
if(flda.value==xmlElement.childNodes[i].childNodes[0].text)
fldb.value=xmlElement.childNodes[i].childNodes[1].text;
}
------解决方案--------------------
url= "http://server1/testajax.nsf/view1?readviewentries "
var req = new ActiveXObject( "Microsoft.XMLHTTP ");
req.open( "GET ",url,false); '将url传进去
result = req.responseXML; '返回的值
这种方法不太好,为什么呢,因为你读取的是整个视图,一般我们建立把数据量减低,
所以一般在readviewentries后面加参数,尽量找到比较准确的数据(参考
http://www.xujiajie.net/viewthread.php?tid=5153
),至于结果处理就很简单了
alert(result) 你看到什么了,那你就分析什么吧,这种代码楼上的兄弟也说了很多