高分求救:简单ajax问题

evoloyeu 2008-04-21 02:29:39
我现在有两个文件:dynamicalMenu.html和showChildrenMenu.jsp
jsp文件处理html文件的请求。
现在的问题:我点击html里的连接不起作用,不只是为什么,现请教各位高手。
工程树形结构:
ajaxexample
.---web页
. |--meta-inf
. |--web-inf
. |showChildrenMenu.jsp
. | dynamicalMenu.html
.
.---.......
.
恳请大家积极指教。
代码贴在下面的页面里。
...全文
93 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
evoloyeu 2008-04-22
  • 打赏
  • 举报
回复
还有一个问题:为什么程序运行IE7.0打开时,浏览器上是一个空白的?
evoloyeu 2008-04-22
  • 打赏
  • 举报
回复
我将jsp代码改为了
<%@page contentType="text/html;charset=gb2312" pageEncoding="UTF-8"%>
<%
String displayPosition=request.getParameter("displayPosiotn");
if("position1".equals(displayPosition)){
out.print("  Network Bases <br>");
out.print("&bnsp; TCP/IP Protocol");
}else if("position2".equals(displayPosition)){
out.print("  C Programming <br>");
out.print("&bnsp; C++ Programming");
out.print("  Thinking in Java <br>");
out.print("  JSP in Action <br>");
out.print("  C# Program Guide <br>");
}else if("position3".equals(displayPosition)){
out.print("  Discrete Math <br>");
out.print("&bnsp; Blur Math <br>");
out.print("  Talking About Set <br>");
}else if("position4".equals(displayPosition)){
out.print("  Interface Technology <br>");
out.print("&bnsp; Computer Architechture <br>");
out.print("  Computer Construction <br>");
}
且是本地测试,所运行的结果还是和以前的一样,请问这是什么原因....
evoloyeu 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java2000_net 的回复:]
既然是Ajax,那就把你的jsp里面前后没用的东西删掉!
[/Quote]我将jsp代码改为了
<%@page contentType="text/html;charset=gb2312" pageEncoding="UTF-8"%>
<%
String displayPosition=request.getParameter("displayPosiotn");
if("position1".equals(displayPosition)){
out.print("  Network Bases <br>");
out.print("&bnsp; TCP/IP Protocol");
}else if("position2".equals(displayPosition)){
out.print("  C Programming <br>");
out.print("&bnsp; C++ Programming");
out.print("  Thinking in Java <br>");
out.print("  JSP in Action <br>");
out.print("  C# Program Guide <br>");
}else if("position3".equals(displayPosition)){
out.print("  Discrete Math <br>");
out.print("&bnsp; Blur Math <br>");
out.print("  Talking About Set <br>");
}else if("position4".equals(displayPosition)){
out.print("  Interface Technology <br>");
out.print("&bnsp; Computer Architechture <br>");
out.print("  Computer Construction <br>");
}
且是本地测试,所运行的结果还是和以前的一样,请问这是什么原因....
Go 旅城通票 2008-04-22
  • 打赏
  • 举报
回复
第1点,不要输出没有意义的东西
[Quote=引用 6 楼 java2000_net 的回复:]
既然是Ajax,那就把你的jsp里面前后没用的东西删掉!
[/Quote]

第2点,可能你网速度慢(不知道你是不是本地测试??),而且使用了同一个ajax对象发起请求,从而第1个没有返回时而后面的请求覆盖了前面的请求

第3点,要先调试好你的jsp页面后再调试ajax代码,你jsp如果有问题根本就谈不上什么ajax


删除不需要的内容,不太清楚jsp,不过和asp应该差不多吧??
<%@page contentType="text/html;charset=gb2312" pageEncoding="UTF-8"%> 
<%
String displayPosition=request.getParameter("displayPosiotn");
if("position1".equals(displayPosition)){
out.print("  Network Bases <br>");
out.print("&bnsp; TCP/IP Protocol");
}else if("position2".equals(displayPosition)){
out.print("  C Programming <br>");
out.print("&bnsp; C++ Programming");
out.print("  Thinking in Java <br>");
out.print("  JSP in Action <br>");
out.print("  C# Program Guide <br>");
}else if("position3".equals(displayPosition)){
out.print("  Discrete Math <br>");
out.print("&bnsp; Blur Math <br>");
out.print("  Talking About Set <br>");
}else if("position4".equals(displayPosition)){
out.print("  Interface Technology <br>");
out.print("&bnsp; Computer Architechture <br>");
out.print("  Computer Construction <br>");
}
//不知道jsp结束输出的对象是什么,asp的话是Response.End
//out.end();//??????jsp的结束输出是这个???
%>
老紫竹 2008-04-22
  • 打赏
  • 举报
回复
既然是Ajax,那就把你的jsp里面前后没用的东西删掉!
evoloyeu 2008-04-21
  • 打赏
  • 举报
回复
还有一个问题:为什么程序运行IE7.0打开时,浏览器上是一个空白的?
evoloyeu 2008-04-21
  • 打赏
  • 举报
回复
楼上说的没错,先谢谢了。
但是,我现在点击连接却处理不了请求,请问是什么原因,请不吝赐教。
目前点击连接后的状态:

Computer Network
正在读取数据...


而应改为:
Computer Network
Network Bases
TCP/IP Protocol
Go 旅城通票 2008-04-21
  • 打赏
  • 举报
回复
.............id都写错了...........



<table width="200" border="0" cellspacing="0" cellpadding="0" bgcolor="#CCCCCC">
<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn1')">Computer Network </a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position1
">  </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn2
')">Program </a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position2
">  </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn3
')">Computer Network </a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position3
">  </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn4')">Computer Network </a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position4">  </td>
</tr>
</table>
evoloyeu 2008-04-21
  • 打赏
  • 举报
回复
jsp代码:
<%--
Document : showChildrenMenu
Created on : 2008-4-21, 11:02:17
Author : Administrator
--%>

<%@page contentType="text/html;charset=gb2312" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>Hello World!</h2>
<%
String displayPosition=request.getParameter("displayPosiotn");
if("position1".equals(displayPosition)){
out.print("  Network Bases<br>");
out.print("&bnsp; TCP/IP Protocol");
}else if("position2".equals(displayPosition)){
out.print("  C Programming<br>");
out.print("&bnsp; C++ Programming");
out.print("  Thinking in Java<br>");
out.print("  JSP in Action<br>");
out.print("  C# Program Guide<br>");
}else if("position3".equals(displayPosition)){
out.print("  Discrete Math<br>");
out.print("&bnsp; Blur Math<br>");
out.print("  Talking About Set<br>");
}else if("position4".equals(displayPosition)){
out.print("  Interface Technology<br>");
out.print("&bnsp; Computer Architechture<br>");
out.print("  Computer Construction<br>");
}
%>
</body>
</html>
evoloyeu 2008-04-21
  • 打赏
  • 举报
回复
html代码:
<!--
Document : dynamicalMenu
Created on : 2008-4-21, 10:05:42
Author : Administrator
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>将响应解析为文本的实例</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(_e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(_E){}
}
if(!xmlHttp&&typeof XMLHttpRequest!='undefined'){
try{
xmlHttp=new XMLHttpRequest();
}catch(e){
xmlHttp=false;
}
}
}
function showChildrenMenu(showPosId){
createXMLHttpRequest();
var position=document.getElementById(showPosId);
position.parentNode.style.display="";
position.innerHTML="正在读取数据...";
var queryString="ShowChildrenMenu.jsp?";
queryString=queryString+"displayPosition="+showPostId+"×tamp="+new Date().getTime();
xmlHttp.onreadystatechange=function(){handleStateChange(showPosId);};
xmlHttp.open("GET",queryString,true);
xmlHttp.send(null);
}
function handleStateChange(showPosId){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var str=document.getElementById(showPosId);
str.innerHTML=xmlHttp.responseText;
}
}
}
</script>
</head>
<body>
<h3>以下是一个动态菜单</h3>
<form action="#" id="form1">
<table width="200" border="0" cellspacing="0" cellpadding="0" bgcolor="#CCCCCC">
<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn1')">Computer Network</a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position1"> </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn2')">Program</a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position2"> </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn3')">Computer Network</a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position3"> </td>
</tr>

<tr>
<td height="20">
<a href="javascript:void(0)" onclick="showChildrenMenu('posiotn4')">Computer Network</a>
</td>
</tr>
<tr style="display:none">
<td height="20" id="position4"> </td>
</tr>
</table>
</form>
</body>
</html>

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧