ajax+xml的asp查询代码

 更新时间:2016年9月20日 19:06  点击:1701
数据库中表名ly,字段名y_username,y_message,y_time
index.html
<HTML>
 <HEAD>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <TITLE> My Documents </TITLE>
 </HEAD>
 <style>
 <!--
 body {font-size:12px;}
 -->
 </style>

 <BODY>
  <form name="form1" method="post">
  <input type="text" name="search">&nbsp;<input type="button" value="查询" onclick="javascript:f1()">
  </form>
  <div id="disp">
  </div>
 </BODY>
</HTML>
<script language="javascript">
function f1()
{
 if(document.form1.search.value=="")
 {
  alert('请输入要查询的内容');
  return false;
 }

 var xmlhttp;
 var search;
 var s="";
 search=document.form1.search.value;
   var xmlhttp;
  try
  {
   xmhttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e)
  {
    try
    {
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
      try
      {
    xmlhttp=new XMLHttpRequest();
      }
      catch (e)
      {
      }
    }
  }
   xmlhttp.onreadystatechange=function()
   {
    if(4==xmlhttp.readyState)
    {
      if(200==xmlhttp.status)
   {
      var xmldoc=xmlhttp.responseXML;
   var message_nodes=xmldoc.getElementsByTagName("message");
   var n_messages=message_nodes.length;
   for (i=0;i<n_messages;i++)
   {
   var user_node=message_nodes[i].getElementsByTagName("user")[0].firstChild.data;
   var text_node=message_nodes[i].getElementsByTagName("text")[0].firstChild.data;
   var time_node=message_nodes[i].getElementsByTagName("time")[0].firstChild.data;
   s=s+"<b>用户名:</b>"+user_node+"<br><b>留言:</b>"+text_node+"<br><b>发言时间:</b>"+time_node+"<br><br>";
   }   
    document.getElementById("disp").innerHTML=s;  
   }
   else
   {
     alert(xmlhttp.status);
   }
    }
   }
   var url="search.asp?search="+escape(search)+"&t="+new Date().getTime();
   xmlhttp.open("get",url);
   xmlhttp.send(null);
}
</script>

search.asp
<!--#include file="adoconn.asp"-->
<%
 text=Trim(request("search"))
 sql="select y_username,y_message,y_time from ly where y_username like '%"&text&"%' order by y_time desc"
 rs.open sql,conn,1,1
 If rs.eof Then
  str="error"
 Else
  Response.ContentType="text/xml"
  str="<?xml version=""1.0"" encoding=""gb2312""?>"&vbnewline
  str=str&"<root>"&vbnewline
  i=1
  Do While Not rs.eof
   str=str&"<message id="""&i&""">"&vbnewline
   str=str&"  <user>"&rs("y_username")&"</user>"&vbnewline
   str=str&"  <text>"&rs("y_message")&"</text>"&vbnewline
   str=str&"  <time>"&rs("y_time")&"</time>"&vbnewline
   str=str&"</message>"&vbnewline
  i=i+1
  rs.movenext
  loop
  str=str&"</root>"
  End If  
  response.write str
  rs.close
  set rs = nothing
  conn.close
  set conn = nothing
%>

网站栏目策划
相对于网站页面及功能规划,网站栏目规划的重要性常被忽略。其实,网站栏目规划对于网站的成败有着非常直接的关系,网站栏目兼具以下两个功能,二者不可或缺。 Webjx.Com

第一、提纲挈领,点题明义。 Webjx.Com

网速越来越快,网络的信息越来越丰富,浏览者却越来越缺乏浏览耐心。打开网站不超过10秒钟,一旦找不到自己所需的信息,网站就会被浏览者毫不客气地关掉。要让浏览者停下匆匆的脚步,就要清晰地给到他们网站内容的“提纲”,也就是网站的栏目。 Webjx.Com

网站栏目的规划,其实也是对网站内容的高度提炼。即使是文字再优美的书籍,如果缺乏清晰的纲要和结构,恐怕也会被淹没在书本的海洋中。网站也是如此,不管网站的内容有多精彩,缺乏准确的栏目提炼,也难以引起浏览者的关注。

网页教学网


因此,网站的栏目规划首先要做到“提纲挈领、点题明义”,用最简练的语言提炼出网站中每一个部分的内容,清晰地告诉浏览者网站在说什么,有哪些信息和功能。 网页教学网

第二、指引迷途,清晰导航

网页教学网


网站的内容越多,浏览者也越容易迷失。除了“提纲”的作用之外,网站栏目还应该为浏览者提供清晰直观的指引,帮助浏览者方便地到达网站的所有页面。

网页教学网

网站栏目的导航作用,通常包括以下四种情况: Webjx.Com

1、全局导航

全局导航可以帮助用户随时去到网站的任何一个栏目。并可以轻松跳转到另一个栏目。通常来说,全局导航的位置是固定的,以减少浏览者查找的时间。

 

2、路径导航 Webjx.Com

路径导航显示了用户浏览页面的所属栏目及路径,帮助用户访问该页面的上下级栏目,从而更完整地了解网站信息。

3、快捷导航

网页教学网

对于网站的老用户而言,需要快捷地到达所需栏目,快捷导航为这些用户提供直观的栏目链接,减少用户的点击次数和时间,提升浏览效率。 网页教学网

4、相关导航


为了增加用户的停留时间,网站策划者需要充分考虑浏览者的需求,为页面设置相关导航,让浏览者可以方便地去到所关注的相关页面,从而增进对企业的了解,提升合作机率。 Webjx.Com

归根结底,成功的栏目规划,还是基于对用户需求的理解。对于用户和需求理解得越准确,越深入,网站的栏目也就越具吸引力,能够留住越多的潜在客户。 网页教学网

网站页面策划
网站页面是企业网站营销策略的最终表现层,也是用户访问网站的直接接触层。同时,网站页面的规划也最容易让项目团队产生分歧:

 

网页设计师说:我最知道审美的标准,对于网页设计,我最有发言权;


网站开发者说:网站程序是我开发的,我最知道我的程序要如何呈现给用户; Webjx.Com

企业决策者说:我最了解我的企业和我的客户,我最能判断他们需要怎样的网站;

网站策划者说:网站的定位和规划源自于我,我才是最终的决断者;


每个人说的都没有错,但是每个人却都只看到了问题的一个方面。对于网页设计的评估,最有发言权的当然还是网站的用户,然而用户却无法明确地告诉我们,他们想要的是怎样的网页,停留或者离开网站是他们表达意见的最直接方法。好的网站策划者除了要听取团队中各个角色的意见之外,还要善于从用户的浏览行为中捕捉用户的意见。

除此之外,建议网站策划者在做网页规划时,遵循以下原则: 网页教学网

1、符合客户的行业属性及企业特点。


在客户打开网页的一瞬间,让客户直观地感受到企业所要传递的理念及特征,如网页色彩、图片、布局等等。 网页教学网

2、符合用户的浏览习惯。

Webjx.Com

根据网页内容的重要性进行排序,让用户用最少的眼球移动和鼠标移动,找到所需信息。 Webjx.Com

3、符合用户的使用习惯。

根据网页用户的使用习惯,将用户最常使用的功能放置于醒目的位置,便利于用户的查找及使用。


4、图文搭配,重点突出。

Webjx.Com

用户对于图片的认知程度远高于对文字的认知程度,适当的使用图片可以提高用户的关注度。此外,确立页面的视觉焦点也很重要,过多的干扰元素会让用户不知所措。 网页教学网

5、利于搜索引擎优化 Webjx.Com

减少FLASH和大图片的使用,多用文字及描述,以便于搜索引擎更容易收录网站,让用户更容易找到所需内容。

通常是利用数据库来保存数据,但也可以使用xml文件来保存数据。假设xml文件的内容是:
test.xml
<?xml version="1.0" encoding="gb2312"?>
<site>
 <root>
   <list>
     <id>0</id>
     <name>新浪</name>
     <url>http://www.sina.com.cn</url>
     <time>2007-11-1 10:10:10</time>
   </list>
   <list>
     <id>1</id>
     <name>google</name>
     <url>http://www.google.cn</url>
     <time>2007-11-2 11:11:11</time>
   </list>
  </root>
</site>

用来显示xml中的内容的asp文件
index.asp
<style>
body {font-size:12px;}
</style>
<%
strSourceFile = Server.MapPath("./") & "test.xml"
'获取XML文件的路径这里根据你的虚拟目录不同而不同
Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
'以自由线程创建一个XML对像
objXML.load(strSourceFile)'把XML文件读入内存
Set objRootsite = objXML.documentElement.selectSingleNode("root")
'选取root节点
num=objRootsite.childNodes.length-1
For i=0 To num
 response.write "网站名:"&objRootsite.childNodes.item(i).childNodes.item(1).text&"   <a href=""javascript:delxml("&objRootsite.childNodes.item(i).childNodes.item(0).text&")"">删除</a> <a href=""editxml.asp?id="&objRootsite.childNodes.item(i).childNodes.item(0).text&""">修改</a>
"
 response.write "网址:"&objRootsite.childNodes.item(i).childNodes.item(2).text&"
"
 response.write "添加时间:"&objRootsite.childNodes.item(i).childNodes.item(3).text&"

"
next
%>
<script>
function delxml(id)
{
  if(!confirm("确定要删除吗?")) return false;
  location.href='delxml.asp?id='+id;
}
</script>

注意:index.asp要与test.xml文件放在同一目录下。

对于小数据量,xml文件在检索更新上于ACCESS有很多优势。 

我曾经测试过不用数据库,把网站的会员信息,商品数据信息,交易信息,网站定制信息全部存放在三个xml文件中,运行结果十分正常,感觉上比数据库快多了,不过没有作测试,不能确定。 

下面说一下创建,查询,修改等对xml操作的主要方法 

’创建DOM对象 
set objDom=server.CreateObject("MicroSoft.XMLDom") 

’取得xml数据 
’方法1 取得xml文件的xml数据 
objDom.load("c:test.xml") 
’方法2 取得xml数据串的数据 
objDom.loadxml("<people><man name="sd"/></people>") 

’创建一个节点对象 
Set Newnode=objDom.CreateElement("people") 
’给这个节点赴值 
Newnode.Text="人" 
’ 给这个节点添加属性 
Set NewAttribute=objDom.CreateNode("attribute","name","") 
NewAttribute.Text= "张三" 
Newnode.SetAttributeNode NewAttribute 
’给这个节点添加子节点 
Set NewnodeChild=objDom.CreateElement("address") 
Newnode.appendChild NewnodeChild 
’保存这个节点对象 
objDom.appendChild Newnode 
objDom.save("c:test.xml") 

’查找一个节点对象 
set objtofind=objdom.documentElement.SelectSingleNode("//people/man") 
’取出这个节点对象的 节点名,节点值,某个属性值,和全部的xml 
nodename=objtofind.nodename 
nodevalue=objtofind.text 
objtofind.GetAttributeNode("name").Nodevalue ’属性名为name的属性值 

’取出一个属性节点对象 
set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name") 
’取出这个节点的属性名,属性值 
nodeattrname=objattrtofind.nodename 
nodeattrvalue=objattrtofind.nodevalue 

’删除一个节点对象 
set objnode=objdom.documentElement.SelectSingleNode("//people/man") ’要删除的节点 
set objparentnode=objdom.documentElement.SelectSingleNode("//people") ’要删除的节点的父节点 
objparentnode.removeChild objnode 

’取出一个节点的字节点集合 
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes 

遍历这个集合 
方法1 
for each element in objnodes 
response.write element.nodename 字节点名 
response.write element.text 字节点值 

next 
方法2 

domlength=objnodes.length 
for i = 0 to domlength-1 
response.write objnodes.childnodes(i).nodename 字节点名 
response.write objnodes.childnodes(i).text 字节点值 
next 

取出一个节点的属性集合 

set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes 

遍历这个集合 

for each element in objnodes 
response.write element.nodename 属性名 
response.write element.nodevalue 属性值 
next 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> 修改xml内容 </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <!--#include file="top.asp"-->
 <%
 id=request("id")
 if IsNumeric(id)=false or isNull(id) then
response.write ("参数不正确,请返回!")
response.end
end if 
addok=request("addok")
If addok="" Or IsNull(addok) then
   strSourceFile = Server.MapPath("./") & "test.xml"
  '获取XML文件的路径这里根据你的虚拟目录不同而不同
  Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
 '以自由线程创建一个XML对像
 objXML.load(strSourceFile)'把XML文件读入内存
 Set objRootsite = objXML.documentElement.selectSingleNode("root")
 id=objRootsite.childNodes.item(id).childNodes.item(0).text
 site=objRootsite.childNodes.item(id).childNodes.item(1).text
 url=objRootsite.childNodes.item(id).childNodes.item(2).text
%>
  <form name="form1" method="post" action="?addok=edit&id=<%=id%>">
  网站名:<input type="text" name="site" value="<%=site%>" size="30">

  网  址:<input type="text" name="url" value="<%=url%>" size="40">

  <input type="submit" value="修改"> <input type="reset" value="重置">
  </form>
<%
End If
If addok="edit" Then
  site=request("site")
  url=request("url")
  strSourceFile = Server.MapPath("./") & "test.xml"
  '获取XML文件的路径这里根据你的虚拟目录不同而不同
  Set objXML = Server.CreateObject("Microsoft.XMLDOM")
  '创建XML对像
  objXML.load(strSourceFile)
  '把XML文件读入内存中
  Set objRootlist = objXML.documentElement.selectSingleNode("root")
  set rootOldNode=objRootlist.childNodes.item(id) 
  brstr=chr(13)&chr(10)&chr(9)
  XMLnode=brstr&"<list>"&vbnewline & _
     "<id>"&id&"</id>"&vbnewline & _
"<name>"&site&"</name>"&vbnewline & _
"<url>"&url&"</url>"&vbnewline & _
"<time>"&Replace(Replace(Now(),"上午 ",""),"下午 ","")&"</time>"&vbnewline & _
"</list>"&vbnewline&vbnewline
  '根据得到的数据建立XML片段
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
'建立一个新XML对像
objXML2.loadXML(XMLnode)
'把XML版片段读入内存中
set rootNewNode=objXML2.documentElement
'获得objXML2的根节点
objRootlist.ReplaceChild rootNewNode,rootOldNode
'修改test.xml
objXML.save(strSourceFile)
'存储test.xml文件(因为不存储test.xml只在内存中更新了)
set objXML=nothing
set objXML2=nothing
Response.Redirect("index.asp")
response.end

End if
%>
 </BODY>
</HTML>

[!--infotagslink--]

相关文章

  • Mybatis Plus select 实现只查询部分字段

    这篇文章主要介绍了Mybatis Plus select 实现只查询部分字段的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-01
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • MyBatisPlus-QueryWrapper多条件查询及修改方式

    这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • Oracle使用like查询时对下划线的处理方法

    这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • 解决mybatis-plus 查询耗时慢的问题

    这篇文章主要介绍了解决mybatis-plus 查询耗时慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-04
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • vue.js 表格分页ajax 异步加载数据

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07