在做一个AJAX加载的树菜单,刚写完贴到这里。
简介的HTML结构如下,没有CSS代码

<ul>
<li><span>item1</span>
       <ul>
       <li><span>item1-1</span></li>
       <li><span>item1-2</span></li>
       <li><span>item1-3</span></li>
</ul>
<li>
<li><span>item2</span></li>
<li><span>item3</span></li>
</ul>

javascript代码

<script type="text/javascript">
function getSub(id,uname)
{
	uname=encodeURIComponent(escape(uname));
	var fuhao=$("#subspan"+id).html();
	if(fuhao=="+")
	{
		
		$("#subspan"+id).html("<img src='javascript/loading.gif' />");
		//ajax
		$.ajax({
			type: "post",
			url : "getUserList.asp",
			dataType:'html',
			data: 'uname='+uname, 
			success: function(msg){
				if(msg===0000)
				{
					$("#subspan"+id).html("+");
					return false;
				}
				else
				{
					$("#subspan"+id).html("-");
					$("#sub"+id).append(msg);
				}
			}
		});
	}
	else
	{
		if($("#sub"+id+" ul").length)
		{
			$("#sub"+id+" ul").remove();
			$("#subspan"+id).html("+");	
		}
		else
		{
			return false;
		}
	}
}
</script>

asp程序代码

<ul>
    <li id="sub<%=rs(0)%>"><span id='subspan<%=rs(0)%>' style='cursor:pointer' onclick="getSub(<%=rs(0)%>,'<%=ureg%>')"><%If count>0 Then response.write("+") Else response.write("-") End if%></span><span><a href="/users/list.asp?id=<%=rs("id")%>" target="user_main"><%=rs("username")%>(<%=count%>)</a></span>
	</li>
<ul>

getUserList.asp部分
类似上面部分也是循环输出类似简介HTML里面的结构
效果图

<%@LANGUAGE=”VBSCRIPT”  codepage=”936″%>
<%
Response.Charset=”gbk”
Response.ContentType=”text/xml”
zctype=request(“zctype”)
bigclass=request(“bigclass”)
gzbw=request(“gzbw”)
set conn = server.createobject(“adodb.connection”)
conn.open Application(“ConnectionString”)
xml_start =”<?xml version=””1.0″” encoding=””gbk””?><selects>”
xml_end =”</selects>”
xml = “<select><value>0</value><text>请选择</text></select>”
i=0
set Rs=server.CreateObject(“adodb.recordset”)
sql=”select show from oa_equ_question where class='”& z &”‘ and type='”& bigclass &”‘ and location='”& gzbw &”‘ order by id desc”
Rs.open sql,conn,1,1
if not Rs.eof and not rs.bof then
while not rs.eof
i=i+1
xml=xml& “<select><value>”& Rs(0) &”</value><text>”& Rs(0) &”</text></select>”
rs.MoveNext
wend
end if
last_xml = xml_start&xml&xml_end
response.Write(last_xml)

select  * from oa_equ_question where id in (select min(id) from oa_equ_question where class=’固定资产’ and type=’笔记本’ group by location) order by id asc

ASP链接ORACLE数据库 数据库结构为:id,class,location,type,show,second 在PL/SQL里面执行语句可以显示所有的列,但是在ASP执行的时候ID这个字段取不到。提示不存在的项目或未知的

读取系统的数据新闻类型的,select * from docinfo结果发现只显示了部分数据,查询得知是CLOB数据 这个方法直接是显示不了的,NVL(dbms_lob.getlength(DETAIL),0) 取得数据的长度,然后用循环一次取2000,SELECT GETCLOB(‘DOCINFO’,’id’,’detail’,” & m_ID & “,” & lloop & “) partstr FROM dual,其中dual是oracle的一张系统表,在这里只是完善SQL的语义,真正有用的就是前面把数据取出来赋值给partstr.


最近在做一个新闻采集的小程序,中间遇到很多问题,Set ObjXMLHTTP=Server.CreateObject(“MSXML2.XMLHTTP”)用的这个方法,后面的换成serverxmlhttp也试过. 本地测试XP系统一切正常,采集GB2312和UTF8的都正常,移植到服务器WIN2003后,采集有些GB2312页面正常,有些不正常,不正常的返回上面图片中的那个符号,而且GB2312的页面是同一个网站的,搜索了很久没有找到答案,到蓝色和CSDN发帖子也没人回,没有办法了更换一个网站采集类似的主题,开始写了个简单的页面采集,正常返回内容目标页面编码GB2312,然后开始写完整的页子,写好之后程序提示msxml3.dll 错误 远程资源下载失败,GOOGLE搜索http://bbs.pfan.cn/post-160461.html这个文章中提到了一个办法—“多数的程序都是运用xmlhttp的 Readystate 属性判断从服务器的返回状态。其实这样未必适合,很多时候用ReadyState 属性判断并不能真正检测到程序流程中的错误。当遇到错误的时候,仍然会致使程序终止。其实修改一下上面的代码,完全可以实现跳过程序执行过程中遇到的错误,使程序继续运行”
If Http.Status<>200 then
Set Http=Nothing 以前都是判断的4,该为status属性后,程序正常执行,HTML页面也生成了。然后后头采集第一次失败的那个页面,这次显示错误代码了“msxml3.dll 错误 ‘800401e4’语法错误”是http.open 这行提示,根据搜索结果判断一个是服务器的防火墙的问题,导致了读取远程资源的时候失败,因为我所在的地方限制很多,21端口都疯掉了,GOOGLE的995 和465端口都访问不了,根据查到资料显示XMLHTTP是需要一个1024以上的随机端口来运行。

Function   ShowFileInfo(filespec)   
          Dim   fso,f,s   
          Set   fso=CreateObject(“Scripting.FileSystemObject”)   
          Set   f=fso.GetFile(filespec)   
          s=UCase(filespec)&”<BR>”   
          s=s&”创建时间:”&f.DateCreated&”<BR>”   
          s=s&”最后访问时间:”&f.DateLastAccessed&”<BR>”   
          s=s&”最后修改时间:”&f.DateLastModified       
          ShowFileInfo=s     
  End   Function