Javascript Ajax响应问题
我有两个jsp文件,如下所示 我有一个父jsp页面,在选择下拉框中有两个选项 我还有另一个jsp,它在表中显示选择框 如果用户在下拉选择框中选择选项“one”,我希望dispTable.jsp的输出作为页面parent.jsp中的ajax响应Javascript Ajax响应问题,javascript,ajax,jsp,Javascript,Ajax,Jsp,我有两个jsp文件,如下所示 我有一个父jsp页面,在选择下拉框中有两个选项 我还有另一个jsp,它在表中显示选择框 如果用户在下拉选择框中选择选项“one”,我希望dispTable.jsp的输出作为页面parent.jsp中的ajax响应 我面临的问题是parent.jsp页面将parent.jsp页面中dispTable.jsp的内容显示为ajax响应,但是“>>”和“在“parent”和“dispTable”中都有相同的Javascript—您需要从其中一个页面中删除它 请参阅函数,如G
我面临的问题是parent.jsp页面将parent.jsp页面中dispTable.jsp的内容显示为ajax响应,但是“>>”和“在“parent”和“dispTable”中都有相同的Javascript—您需要从其中一个页面中删除它 请参阅函数,如
GetSelectValues(CONTROL)
和FillListValues(CONTROL)
顺便说一句,你不需要使用“缓冲区”,你可以这样写
<table>
<tr>
<td>
<SELECT class="select" NAME="list1" id="list1" MULTIPLE SIZE=10 style="width:150px;">;
<option value="co_group">Compnay Description</option>
<option value="pe_rev_name">Contact Name</option>
<option value="co_tel_work">Telephone</option>
<option value="action_flag">Company Address</option>
<option value="co_group">Compnay Description</option>
<option value="pe_rev_name">Contact Name</option>
<option value="co_tel_work">Telephone</option>
<option value="pe_position">Contact Position</option>
<option value="pe_tel_work">Contact Telephone</option>
<option value="ref_no">ISBN</option>
</SELECT>
</td>
<td>
<INPUT TYPE="button" NAME="right" VALUE=">>" id="add" onclick="add()" style="width:40px;"><BR><BR>
<INPUT TYPE="button" NAME="left" VALUE="<<" id="remove" onclick="remove()" style="width:40px;"><BR><BR>
</td>
<td>
<SELECT NAME="list2" id="list2" MULTIPLE SIZE=10 style="width:150px;">
</SELECT>
</td>
</tr>
</table>
....
请注意,我使用了“one”.equals(name)
,而不是name.equals(“one”)
,因为它也处理空情况。
如果您还需要什么,我可能错过了,请告诉我
这是我的工作代码(我已经在我的工作区中删除了if'one'。equals条件,因为它不支持JSP)
父文件如下所示:
<html>
<head>
<script language="javascript" type="text/javascript">
function showEmp(str){
$("#emp").load("dispTable.jsp");
}
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<script type="text/javascript">
function add()
{
return !($('#list1 option:selected').remove().appendTo('#list2') && ($('#list2:last-child').selected="selected"));
}
function remove()
{
return !$('#list2 option:selected').remove().appendTo('#list1');
}
</script>
<select name = "ratingsClient" style="width: 150px" id="ratingsClient" onchange="showEmp(this.value)">
<option value="aaa">aaa</option>
<option value="one">one</option>
<option value="two">two</option>
</select>
<br>
<div id="emp">
<table name="emp" >
</table>
</div>
</body>
</html>
您必须编写简短的代码,并在您的终端进行测试。我需要最低限度的这一功能来为我的实际代码工作。这只是一个示例,如果它能工作,将有助于实际实现。如果您能指出错误,这将非常有帮助。这段代码可以在您的机器上进行测试吗。只是想知道,既然已经在使用jQuery,为什么还要摆弄原始的
XMLHttpRequest
?我将代码粘贴到两个jsp文件中,因为它在使用或不使用它们之前都不起作用。现在,即使在dispTable.jsp中删除了代码,代码也不起作用。您能检查一下代码是否在您的系统中运行吗?听起来像是在引用已更正的代码代码o看不到您发布的代码。我添加了我的代码-我不得不删除JSP代码段-但由于这更像是一个javascript/ajax/jquery问题,我不认为这会打扰你。我尝试了这个,我只想通过ajax获得响应,因为我需要传递一个员工的名字,并在页面中获取他的详细信息,如果该员工存在的话,作为ajax响应。这只是一个示例,以获得不起作用的结果。“dispTable”使用ajax加载。在此方法中,如何将值从父级传递到dispTable。在使用请求参数传递/检索值之前,我需要在dispTable中查询数据库并填充表,然后将结果作为ajax响应返回。
<table>
<tr>
<td>
<SELECT class="select" NAME="list1" id="list1" MULTIPLE SIZE=10 style="width:150px;">;
<option value="co_group">Compnay Description</option>
<option value="pe_rev_name">Contact Name</option>
<option value="co_tel_work">Telephone</option>
<option value="action_flag">Company Address</option>
<option value="co_group">Compnay Description</option>
<option value="pe_rev_name">Contact Name</option>
<option value="co_tel_work">Telephone</option>
<option value="pe_position">Contact Position</option>
<option value="pe_tel_work">Contact Telephone</option>
<option value="ref_no">ISBN</option>
</SELECT>
</td>
<td>
<INPUT TYPE="button" NAME="right" VALUE=">>" id="add" onclick="add()" style="width:40px;"><BR><BR>
<INPUT TYPE="button" NAME="left" VALUE="<<" id="remove" onclick="remove()" style="width:40px;"><BR><BR>
</td>
<td>
<SELECT NAME="list2" id="list2" MULTIPLE SIZE=10 style="width:150px;">
</SELECT>
</td>
</tr>
</table>
function showEmp(str){
$.get("dispTable.jsp",{"count":str},function(result){$("#emp").html(result)})
}