为了账号安全,请及时绑定邮箱和手机立即绑定

急,请问下在一个页面里怎么传值?

急,请问下在一个页面里怎么传值?

C
qq_花开花谢_0 2022-12-21 18:14:48
例如, 在一个页面里有两个列表/菜单,第一个显示省,第二个显示市,如何在第一个列表/菜单选择完后,将它的选择结果传给第二个列表/菜单。谢谢!!!
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

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

查看完整回答
反对 回复 2022-12-25
?
交互式爱情

TA贡献1712条经验 获得超3个赞

与数据库相连的二级下拉菜单完整代码文件select.asp代码如下:

<!--#include file="conn.asp"-->
<%
mysql="select * from city order by city_name asc "'这是二级菜单的数据来源
set rsh2 =server.createobject("ADODB.Recordset")
rsh2.open mysql,conn,1,2
rsh2.movefirst
m=0
x=0
%>
<script language="javascript">

subcat = new Array();//建立一个数组
<%
while not rsh2.eof
name1="'"&rsh2("city_sheng")&"'"//相关联的值
name2="'"&rsh2("city_name")&"'"
//取得第二级显示内容和菜单的值
%>
subcat[<%=m%>] = new Array(<%=name2%>,<%=name1%>,<%=name2%>);
//第一个元素标识一级,第二个元素是显示的内容,每三个为这个元素的值相当于value
<%

rsh2.movenext
m=m+1
x=x+1//计算选项元素的个数

wend

%>
var onecount;
onecount=0;
onecount=<%=x%>;
function changelocation(locationid)
//这个函数是用来根据第一个下拉菜单来改变第二个下拉菜单的显示,locationid是一级下拉菜单的value值
{
document.myform.Nclassid.length = 0; 
//Nclassid为第二级下拉菜单的name,此句将第二级下拉菜单的长度清零,即当没有任何选择的时候,显示为空
var locationid=locationid;//取得第一个下拉菜单的值
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
//当二个下拉菜单的值等于第一个下拉菜单的关联值时,即建立option对象,生成第二级下拉菜单项

document.myform.Nclassid.options[document.myform.Nclassid.length] = new Option(subcat[i][0], subcat[i][2]);
//当第二级菜单生成一个下拉项时,document.myform.Nclassid.length的值会自动增加,即会自动生成一个下拉菜单项,subcat[i][0]为option中的value,subcat[i][2]为option显示的值,在这里,这两个值是相同的

}
}
</script>
<form name="myform">
<tr>
<td><select name="classid" onChange="changelocation(document.myform.classid.options[document.myform.classid.selectedIndex].value);">
<%
'onChange是一个会根据内容改变而触发的事件,当select下拉菜单的内容改变了,就会执行changelocation()这个函数
'以下是通过数据库来取得第一个下拉菜单的显示内容和值
response.write"<option >请选择</option>"
set rs=server.createobject("adodb.recordset")
sql="select * from sheng order by sheng_id"
rs.open sql,conn,3,1
rs.movefirst
while not rs.eof
response.write "<option value="&rs("sheng")&">"&rs("sheng")&"</option>"
rs.movenext
wend
set rs=nothing
%>
</select></td>
<td width="31">市:</td><td width="55">
<select name="Nclassid">

</select></td></tr></form>

文件conn.asp 代码如下(也可以直接写到select.asp开头):

<%
set conn=server.createobject("adodb.connection")
dbpath=server.mappath("data.mdb")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &dbpath
conn.open connstr
%>

数据库:

表city:

表sheng:

说明:

'一个数据库中有两个表,一个是sheng表,里面保存着省的资料,这个表有两个字段,一个是sheng_id,这个ID是自动生成的,
'一个是sheng,是用来保存省份的名称.两个字段都为字符型,另外一个表是city里面保存着城市的资料,这个表有三个字段,
'一个是city_id,这个ID也是自动生成的,一个是city_name,是用来保存城市的名称的,一个是city_sheng,是用来这个城市所在的省
'这个字段也是让关联菜单能够关联起来的一个字段


查看完整回答
反对 回复 2022-12-25
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

建一个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 数字


查看完整回答
反对 回复 2022-12-25
  • 3 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信