宝格丽 西班牙:急!!!同一个页面传值——在线等待

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 07:54:48
在一个页面里怎么传值?

例如, 在一个页面里有两个列表/菜单,第一个显示省,第二个显示市,如何在第一个列表/菜单选择完后,将它的选择结果传给第二个列表/菜单。

谢谢!!!

建一个ASP文件ajax.asp
<%
Response.CharSet = "gb2312"
area=""
'--------------得到地区参数
objstr=request("objstr")
'--------------根据参数读取相应的下级地区
set rs=server.createobject("adodb.recordset")
rs.open"select * from area where fmc='"&objstr&"' order by id",conn,3,3
'--------------循环得到数组并返回客户端
for i=1 to rs.recordcount
if i=1 then
area=rs("mc")
else
area=area&"|"&rs("mc")
end if
rs.movenext
next
'--------------返回数据
response.write area
%>
----------------------------------------------
另建一个调用文件INDEX.asp
<HTML>
<HEAD>
<script language="javascript" defer="defer">
/*
说明:三级全国地区菜单
*/
//封装一个xmlhttp与服务器端进行交互
function ajax(objstr)
{
//接收传递参数
string="objstr="+escape(objstr);
//建立对象
var objXMLHTTP = null;
try
{
objXMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e)
{
try
{
objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2){}
}
//发送数据
objXMLHTTP.open("POST", "ajax.asp", false);
objXMLHTTP.setrequestheader("content-length",string.length);
objXMLHTTP.setrequestheader("content-type","application/x-www-form-urlencoded");
objXMLHTTP.send(string);
//得到服务器端返加值
return objXMLHTTP.responseText;
}

//封装返回省级数据
function city(objstr,objselect)
{
var _Array=ajax(objstr);
var objselect=eval("document.all."+objselect);
//加入select值前先清空其所有值
objselect.length=0;
var split_Array=_Array.split("|");
for(i=0;i<split_Array.length;i++)
{
objselect.options.add(new Option(split_Array[i],split_Array[i]));
}

}

//封装返回Select选中值
function getSelectValue(id)
{
var oSel = document.all(id);
return oSel.options[oSel.selectedIndex].value;
}

//封装改变省级菜单产生事件city1
function city1_change()
{
city(getSelectValue("city1"),"city2");
city(getSelectValue("city2"),"city3");
}

//封装改变县级菜单产生事件city2
function city2_change()
{
city(getSelectValue("city2"),"city3");
}

//第一次载入页面初始化select
city("0","city1");
city(getSelectValue("city1"),"city2");
city(getSelectValue("city2"),"city3");

</script>
<title>全国地区连动</title>
</HEAD>
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<form id="form">
<tr>
<td><select id="city1" onChange="city1_change();"></select></td>
<td><select id="city2" onChange="city2_change();"></select></td>
<td><select id="city3"></select></td>
</tr>
</form>
</table>
</body>
</HTML>
......................
建一个库
表为:area
id 自动编号
fmc 文本
mc 文本
px 数字

.....哪我的程序去看看吧~`我做的搜索!先是选择一级大类,自动生成二级分类!!!

<script>
function bbb(){
if(document.souform.keyword.value==""||document.souform.keyword.value=='请输入关键字!'){
alert("请输入关键字!");
return false ;
}
return true
}

function eee(){
if(document.souform.keyword.value=='请输入关键字!'){
document.souform.keyword.value="";
}
}
</script>

<%
set rs=server.createobject("adodb.recordset")
sql = "select * from smallclass order by smallclassID asc"
rs.open sql,conn,1,1
%>
<script language = "JavaScript">
var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("smallclassName"))%>","<%= trim(rs("bigclassName"))%>","<%= trim(rs("smallclassName"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;

function aaa(locationid)
{
document.souform.smallclassName.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.souform.smallclassName.options[document.souform.smallclassName.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

</script>

<form name="souform" method="post" action="searchslt_in_site.asp" onSubmit="return bbb();">

<%
sql = "select * from bigclass"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "请先添加栏目。"
else
%>
<select name="bigclassName" onChange="aaa(document.souform.bigclassName.options[document.souform.bigclassName.selectedIndex].value)" size="1">
<option selected value="<%=trim(rs("bigclassName"))%>"><%=trim(rs("bigclassName"))%></option>
<%
dim selclass
selclass=rs("bigclassName")
rs.movenext
do while not rs.eof
%>
<option value="<%=trim(rs("bigclassName"))%>"><%=trim(rs("bigclassName"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select> <select name="smallclassName">
<option value="" selected></option>
<%
sql="select * from smallclass where bigclassName='" & selclass & "'"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
%>
<option value="<%=rs("smallclassName")%>"><%=rs("smallclassName")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("smallclassName")%>"><%=rs("smallclassName")%></option>
<%
rs.movenext
loop
end if
rs.close
%>
<%
ranNum=int(9*rnd)+10
iddata=month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
%>
</select>
关键字:
<input type="text" name="keyword" size="20" onmousedown="eee()" value="请输入关键字!">
<input type="radio" name="selection" value="title" checked>按标题搜
<input type="radio" name="selection" value="content">按内容搜
<input type="submit" name="Submit" value="提交" class="input">
<input type="reset" name="Submit2" value="重置" class="input">

</form>

这得看你用什么语言编程
如果是.net的话可以设置控件的AutoPostBack为true
如果是asp的话可以在第一个显示省的控件上添加一个事件如:onchange()
然后在调用javascript之类的东西,就可以了
如果是其它语言编程,那另有办法。。。