如何实现公共通讯录的部分页面刷新
我做了一个公共地址簿,有查询功能,从查询结果选择主送人和抄送人,现在完成主送人和抄送人的选择,但是因为抄送人是不同单位的人员,需要重新查询单位找到相关人员,但是一查询就把原来选好的人员也刷新了,我希望只是在左边表格里显示查询结果,无论查询多少次都不影响右边两个表格的数据。
代码如下:
有人说用<iframe>,我试了并不成功,请大家帮帮忙,谢谢。
<!--#include file="../inc/conn.asp"-->
<!--#include file="../inc/function.asp"-->
<%
selectusers = trim(request("SelectedUsers"))
if left(selectusers,"1")="," then selectusers=right(selectusers,len(selectusers)-1)
arrSelectUsers=split(selectusers,",")
dim strSelectUsers
if not isempty(arrSelectUsers) then
for i=ubound(arrSelectUsers) to 0 step -1
str=GetUser1("tblUser","UserName",arrSelectUsers(i))
strSelectUsers=strSelectUsers &","& str
next
if left(strSelectUsers,"1")="," then strSelectUsers=right(strSelectUsers,len(strSelectUsers)-1)
end if
selectusers1 = trim(request("SelectedUsers1"))
if left(selectusers1,"1")="," then selectusers1=right(selectusers1,len(selectusers1)-1)
arrSelectUsers1=split(selectusers1,",")
dim strSelectUsers1
if not isempty(arrSelectUsers1) then
for i=ubound(arrSelectUsers1) to 0 step -1
str=GetUser1("tblUser","UserName",arrSelectUsers1(i))
strSelectUsers1=strSelectUsers1 &","& str
next
if left(strSelectUsers1,"1")="," then strSelectUsers1=right(strSelectUsers1,len(strSelectUsers1)-1)
end if
%>
<%
Dim sql,rsb
set rsb=server.CreateObject ("ADODB.Recordset")
sql = "select ID,enterarea_id,department from tbldepartment where disp='0' order by enterarea_id"
rsb.Open sql,oConn,1,3
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rsb.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rsb(2))%>","<%= trim(rsb(1))%>","<%= trim(rsb(2))%>");
<%
count = count + 1
rsb.movenext
loop
rsb.close
set rsb=nothing
%>
onecount=<%=count%>;
function changeunits(enter_area)
{
document.Queryform.selDept.length = 0;
var enter_area=enter_area;
var i;
document.Queryform.selDept.options[0] = new Option('请选择','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == enter_area)
{
document.Queryform.selDept.options[document.Queryform.selDept.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<%
strEnterarea = trim(request("selEnterarea"))
strDept = trim(request("selDept"))
sqlCondition=""
if strEnterarea <>"" then sqlcondition=sqlCondition&"d.enterarea_id='"&strEnterarea&"' and "
if strDept<>"" then sqlCondition=sqlCondition&"d.department='"&strDept&"' and "
if sqlcondition<>"" then
strCondition=sqlcondition & "s.disp='0' order by e.id,d.id"
else
strCondition="s.disp='0' order by e.id,d.id"
end if
set rsm=Server.CreateObject("Adodb.Recordset")
sql="select e.id as enter_area,e.enter_area,d.id as dept_id,d.enterarea_id,d.department as dept,s.id as user_id,s.loginname,s.username,s.department "
sql=sql&"from "
sql=sql&"tbl_enterarea as e "
sql=sql&"left join "
sql=sql&"tbldepartment as d "
sql=sql&"on "
sql=sql&"e.id=d.enterarea_id "
sql=sql&"left join "
sql=sql&"tbluser as s "
sql=sql&"on "
sql=sql&"d.id=s.department "
sql=sql&"where "
sql=sql&strCondition
rsm.open sql,oConn,1,3
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel=stylesheet type=text/css href="../css/Style.css">
<title>无标题文档</title>
</head>
<script src="../JS/selectuser.js"></script>
<body bgcolor=#dddddd <%if selectusers<>"" or selectusers1<>"" then response.write "onload=""closewindow('"&selectusers&"','"&strSelectUsers&"','"&selectusers1&"','"&strSelectUsers1&"');"""%>>
</body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<form action="" method="get" name="Queryform">
<td colspan="3"> 厂区: <select name="selEnterarea" onChange="changeunits(document.Queryform.selEnterarea.options[document.Queryform.selEnterarea.selectedIndex].value);">
<option value="">全部</option>
<%
dim strSQL1,objRs1
strSQL1="select id,enter_area from tbl_enterarea where disp=0"
set objRs1=server.CreateObject ("ADODB.Recordset")
objRs1.Open strSQL1,oConn,1,3
if not objRs1.EOF then
do while not objRs1.EOF
%>
<option value="<%=objRs1.Fields(0)%>" <%if objRs1.Fields(1) = strEnterarea then%> selected <%end if%>><%=objRs1.Fields(1)%></option>
<%
objRs1.MoveNext
loop
end if
objRs1.Close
set objRs1=nothing
%>
</select>
部门: <select name="selDept">
<option value="">全部</option>
<%if selDept<>"" then%>
<option value="<%=selDept%>" selected><%=selDept%></option>
<%end if%>
</select> <input name="submit" type="image" value="查询" src="../images/query.jpg" width="51" height="19">
</td>
</form>
</tr>
<Form name="userform" Method="Post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
<tr>
<td rowspan="2" valign="top" width="200">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><div align="center">职员一览表</div></td>
</tr>
<tr>
<td align="center">所在部门</td>
<td align="center">员工姓名</td>
</tr>
<tr>
<td colspan="2">
<select name="selectableIDList" multiple size="15" style="width:100%;" ondblClick="addConfirmer(); return false;">
<%if not rsm.eof then
do while not rsm.eof%>
<option value="<%=rsm("user_id")%>">
<%=rsm("dept")%>
<%=rsm("username")%>
</option>
<%
rsm.movenext
loop
end if
%>
</select>
</td>
</tr>
</table>
</td>
<td width="30"><input type="button" value="添加 →" onClick="addConfirmer(); return false;"><BR>
<input type="button" value="← 删除" onClick="removeConfirmer(); return false;"></td>
<td width="200" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">责任单位负责人:</td>
</tr>
<tr>
<td height="19" align="center">所在部门</td>
<td align="center">员工姓名</td>
</tr>
<tr>
<td colspan="2">
<select name="selectedIDList" multiple size="5" style="width:100%;" ondblClick="removeConfirmer(); return false;">
</select></td>
</tr>
</table></td>
</tr>
<tr>
<td><input type="button" value="添加 →" onClick="addConfirmer1(); return false;"><BR>
<input type="button" value="← 删除" onClick="removeConfirmer1(); return false;"></td>
<td width="200" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">送知单位负责人:</td>
</tr>
<tr>
<td height="19" align="center">所在部门</td>
<td align="center">员工姓名</td>
</tr>
<tr>
<td colspan="2">
<select name="selectedIDList1" multiple size="5" style="width:100%;" ondblClick="removeConfirmer1(); return false;">
</select></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3">
<INPUT TYPE="hidden" name="operatorID" value="<%=session("LoginID")%>">
<INPUT TYPE="hidden" name="SelectedUsers" value="">
<INPUT TYPE="hidden" name="SelectedUsers1" value="">
<div align=center>
<INPUT TYPE="submit" value="确 定" name="cmdUp" onclick="GetUsers();">
<input type="button" onclick="javascript:window.close();" value="放 弃">
</div>
</td>
</tr>
</form>
</table>
[解决办法]
以前也弄过这个, 我是通过两种方式: 一 缓存条件字段, 每次再查询时重新形成sqlstr, 二 是javascript 来实现,对显示区域追加信息. 一个是服务器实现一个是客户端实现, 看你的需求了.
希望对你有帮助.
[解决办法]
AJAX可以实现。IFRAME不成功?那估计是您的经验问题。很多AJAX我都喜欢用IFRAME代替,因为简单了很多!