一个多次搜索+多次传值的解决方案
小弟刚学js,希望高手能够帮忙!
这是一个管理系统的中的项目参与人员选择的代码,要解决的问题是:
1.用户点击选择人员后,弹出一个新窗口,能根据姓名或单位查找某个人,然后选择想要选择的人.然后继续查找下一个人.然后选择.
2 选择好要选的人员后,把值返回到主页面的人员的表单中
3 一个表单中可能有多处字段需要填入人员.
比如现在要添加一个项目信息
其中有
项目主持人
项目组成人员
人员的信息都从人员信息库中取得.
以下是主页面的代码,由于用了ifrma.所以不能传值
文件打包上来吧:
http://www.HNTF.CN/RYXZ.rar
var t
function disp(obj) {
ctlToPlaceValue = obj
document.all.iframe1.style.display="block";
}
function shout() {
document.all.iframe1.style.display="none";
}
t=document.frmxx.NRYGXM
function list_sub(){
//获得IFRAME1中被选中员工的ID值
var list_value_str,list_array;
var n = 0;
list_array = document.employee.document.all.item("employee_id");
for (var i=0; i
|
人员
人员2
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
暂时解决用ajax实现
我找到一种比较好方法了,基本思路是JS+Ajax来实现
,个人觉得这种方式解决多次搜索,多次传值比较好,里面的选择的js代码是从无忧拷贝的,如果有更好的方法,望高人指点!因为在办公系统中录入数据的时候,经常碰到这种问题,vbs解决实在很吃力。
无标题文档
var xmlObj = false;
var xmlResult;
try {
xmlObj=new XMLHttpRequest;
}
catch(e) {
try {
xmlObj=new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e2) {
try {
xmlObj=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e3) {
xmlObj=false;
}
}
}
if (!xmlObj) {
alert("XMLHttpRequest init Failed!");
}
function AjaxSearch() {
var searchword;
searchword=escape(document.getElementById("searchword").value);
if(searchword=="") {
document.getElementById("search_result").innerHTML="
- 请输入关键字!
";
return;
}
document.getElementById("search_result").innerHTML="
- 正在加载,请稍候
";
xmlObj.open ("POST", "ajaxsearch.asp", true);
xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObj.onreadystatechange=function() {
if(xmlObj.readyState==4) {
if(xmlObj.status==200) {
xmlResult=xmlObj.responseXML;
AjaxShowResult();
}
}
}
xmlObj.send("searchword="+searchword);
}
function AjaxShowResult() {
var results,i,strTemp;
results=xmlResult.getElementsByTagName("result");
strTemp="
- ";
- 无搜索结果
if(results[0].getElementsByTagName("logid")[0].firstChild.data=="#")
strTemp=strTemp+"
";
else
for(i=0;i"+results[i].getElementsByTagName("logtitle")[0].firstChild.data+"
" + results[i].getElementsByTagName("logtitle")[0].firstChild.data + "("+results[i].getElementsByTagName("logtitle2")[0].firstChild.data +")
";
strTemp=strTemp+"
";
document.getElementById("search_result").innerHTML = strTemp
}
var likes=new Array(); xinge=new Array();
function addthis(e){
var e, srcE, op, opt, i;
e=window.event?window.event:e;
srcE=e.srcElement?e.srcElement:e.target;
if(!srcE)return;
if(String(srcE.tagName).toLowerCase()!="input"||String(srcE.type).toLowerCase()!="checkbox")return;
if(srcE.id.indexOf("xinge")!=-1){ op=xinge; opt=document.forms[0].xinge }else{ op=likes; opt=document.forms[0].likes; }
if(srcE.checked){
i=-1;
while(op[++i])if(op[i]==srcE.value)return;
op[i]=srcE.value;
}else{
i=-1;
while(op[++i])if(op[i]==srcE.value){op.splice(i,1);i--;}
}
opt.value=op;
}
document.onkeydown=document.onchange=document.onclick=addthis;
- 请输入关键字
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
ajaxsearch.asp
处理 SSI 文件时出错
"
IF Search_WordEmpty Then
' 创建查询SQL语句
sqlSearch="SELECT * FROM wuhen_t_yg WHERE ygxm LIKE '%"&Search_Word&"%' ORDER BY ygbh DESC"
' 打开记录集
rsSearch.open sqlSearch,Conn,1,1
' 如果没有搜索结果就产生一个结果,logid为#,标志着没有搜索结果
IF rsSearch.BOF AND rsSearch.EOF Then XML_Result=XML_Result&"#"
' 循环输出搜索结果
Do While Not rsSearch.EOF
XML_Result=XML_Result&""&rsSearch("ygbh")&"" ' 循环输出每一个结果
rsSearch.MoveNext
Loop
Else
' 关键字为空,则返回无搜索结果
XML_Result=XML_Result&"#"
End IF
XML_Result=XML_Result&""
' 设置MIME Type为XML文档
Response.ContentType = "application/xml"
'Response.CharSet = "utf-8"
' 输出搜索结果
Response.Write(XML_Result)
%>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]