View Full Version : 哪位高人能不能出个简单的例子-使用AJAX读取一个视图内容??
求教:
哪位高人能不能出个简单的例子-使用AJAX读取一个视图内容??
web下我打开一个视图,显示出的是xml文件,不知道怎么样去使用ajax读取出来并显示??
求高人指教!!!
8bit_name
09-12-07, 11:15 PM
ajax只是获取视图的xml,然后用xsl去显示啊。
建议LZ先研究如何用xsl解析xml……
用这个URL command就可以了: ReadViewEntries
http://Host/Database/ViewName?ReadViewEntries
在R7的帮助中的位置:Application Desing\URL command for web applications\URL commands for opening servers, databases, and views
不好意思,没看清你的意思。
要用Ajax操作xml视图内容,你要先创建一个Xmlhttp对象。
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
然后把你返回xml的url传到这个函数中,进行异步调用。
function asynGet(url){
request.open("GET",url,true);
request.onreadystatechange = updatePage;
request.send(null);
}
当Domino返回的时候,它会自己调用下面这个函数。
function updatePage(){
if (request.readyState == 4) { //这是判断返回状态的。
if (request.status == 200) {
userDefinedUpdatePage() //这里实现你自己的返回处理
}
}
}
function userDefinedUpdatePage(){
var xmlDoc = request.responseXML; //这里获得返回的xml了
var records = xmlDoc.getElementsByTagName("viewentry");//操作xml的话,可以查查有关Dom的一些方法。用的最多的是getElementsByTagName
//下面的操作是根据返回的xml更新一个下拉列表框中的值。
oOption = document.createElement("OPTION");
oOption.text="";
oOption.value="";
oList.add(oOption);
var columns,oOption
for(var i=0;i<records.length;i++){
columns = records.item(i).getElementsByTagName("entrydata");
oOption = document.createElement("OPTION");
oOption.text=columns.item(1).text;
oOption.value=columns.item(0).text;
oList.add(oOption);
}
}
熟练了这个后,你可以考虑用prototype,你可以搜索下载了解一下。
使用ajax更方便。
function UpdateSelectionItems(url){
var vss = new Ajax.Request( //Ajax是prototype中的Ajax对象,代码更简洁,可读性更好。
url ,
{
method: 'get',
asynchronous: true, //这个参数不是必须的,因为默认是异步true的,如果你不想异步调用,可把这个参数改为false。还有其他参数,你可以参考prototype中关于Ajax的说明。
onComplete: UpdateLocation
}
);
}
function UpdateLocation(response){ //注意这里函数的参数一定要带,我自己就忘了几次,害我找了半天原因。
......
var xmlDoc = response.responseXML;
var records = xmlDoc.getElementsByTagName("viewentry");
oOption = document.createElement("OPTION");
oOption.text="";
oOption.value="";
oList.add(oOption);
var columns,oOption
for(var i=0;i<records.length;i++){
columns = records.item(i).getElementsByTagName("entrydata");
oOption = document.createElement("OPTION");
oOption.text=columns.item(1).text;
oOption.value=columns.item(0).text;
oList.add(oOption);
}
}
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.