关于联动类的代码:
给个城市类的三框联动代码,具体思路是由JS从服务器上得到新的数据后插入页面。
这是联动页代码:
<!-- 这个JS负责执行函数 GETDATAW 从数据“推 送”页得到的JS代码,
功能 是将新产生的下拉框插入到对应的DIV中,以产生新的选 择列表-->
<script language="JavaScript" id="getareadata"></script>
<!-- 这个JS负责以不同的参数向数据“推送”页请求生成新的下拉列表框 -->
<script language="javascript">
<!--
function getdataw(id,obj)
{
if (obj !="f_qu")
{
phpfilename="getareadata.php?id="+id+"&obj="+obj;
document.getElementById("getareadata").src=phpfilename;
}
document.frmfarea.f_areadata.value=id;
document.frmtj.f_tjid.value=id;
}
//-->
</script>
<form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">
<table width="400" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td colspan="2" bgcolor="#FFF6E9">请选择地区:</td>
</tr>
<tr>
<td width="72" rowspan="3" bgcolor="#FFF6E9"><div align="center"></div></td>
<td width="322" bgcolor="#FFF6E9">
<select name="f_sheng" id="f_sheng" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择省==</option>
<?php
$sqlaa="select * from sm_area where aa_upid=0 and aa_uptid=0 order by aa_name";
$resultaa=@odbc_do($db,$sqlaa);
while ($rstaa=@odbc_fetch_array($resultaa))
{
echo "<option value=\"$rstaa[aa_id]\">$rstaa[aa_name]</option>";
}
?>
</select></td>
</tr>
<tr bgcolor="#FFF6E9">
<td> <div id="showshi">
<select name="f_shi" id="f_shi" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择市==</option>
</select></div></td>
</tr>
<tr bgcolor="#FFF6E9">
<td><div id="showqu">
<select name="f_qu" id="f_qu" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择县/区==</option>
</select></div>
<input name="f_areadata" type="hidden" id="f_areadata">
</td>
</tr>
<tr align="center" bgcolor="#FFF6E9">
<td colspan="2"><input type="submit" name="Submit32" value="显示列表"></td>
</tr>
</table>
</form>--------------------下面是数据“推送”页 getareadata.php 代码
<?php
header("Cache-Control: no-store, no-cache,must-revalidate");//必须
require("config/database.php");
if ($_GET[obj]=="f_sheng")
{//如果是省框变动则生成对应此省的市的下拉框代码
$tdiv="showshi";
$output="<select name='f_shi' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择市==</option>";
$sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
}
else
{//如果是市框变动则生成对应此市的区的下拉框代码
$tdiv="showqu";
$output="<select name='f_qu' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择县/区==</option>";
$sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
}
$result=@odbc_do($db,$sql);
while ($rst=@odbc_fetch_array($result))
{//生成新的OPTION列表
$output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";
}
$output.="</select>";
echo "document.getElementById(\"$tdiv\").innerHTML=\"$output\";";
//本页生成的JS代码由 id="getareadata" 的JS执行。最后一行即是将生成的SELECT框代码插入到对应的DIV标签中。
?>
给个城市类的三框联动代码,具体思路是由JS从服务器上得到新的数据后插入页面。
这是联动页代码:
<!-- 这个JS负责执行函数 GETDATAW 从数据“推 送”页得到的JS代码,
功能 是将新产生的下拉框插入到对应的DIV中,以产生新的选 择列表-->
<script language="JavaScript" id="getareadata"></script>
<!-- 这个JS负责以不同的参数向数据“推送”页请求生成新的下拉列表框 -->
<script language="javascript">
<!--
function getdataw(id,obj)
{
if (obj !="f_qu")
{
phpfilename="getareadata.php?id="+id+"&obj="+obj;
document.getElementById("getareadata").src=phpfilename;
}
document.frmfarea.f_areadata.value=id;
document.frmtj.f_tjid.value=id;
}
//-->
</script>
<form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">
<table width="400" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td colspan="2" bgcolor="#FFF6E9">请选择地区:</td>
</tr>
<tr>
<td width="72" rowspan="3" bgcolor="#FFF6E9"><div align="center"></div></td>
<td width="322" bgcolor="#FFF6E9">
<select name="f_sheng" id="f_sheng" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择省==</option>
<?php
$sqlaa="select * from sm_area where aa_upid=0 and aa_uptid=0 order by aa_name";
$resultaa=@odbc_do($db,$sqlaa);
while ($rstaa=@odbc_fetch_array($resultaa))
{
echo "<option value=\"$rstaa[aa_id]\">$rstaa[aa_name]</option>";
}
?>
</select></td>
</tr>
<tr bgcolor="#FFF6E9">
<td> <div id="showshi">
<select name="f_shi" id="f_shi" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择市==</option>
</select></div></td>
</tr>
<tr bgcolor="#FFF6E9">
<td><div id="showqu">
<select name="f_qu" id="f_qu" onChange="javascript:getdataw(this.value,this.name);">
<option value="-1" selected>==请选择县/区==</option>
</select></div>
<input name="f_areadata" type="hidden" id="f_areadata">
</td>
</tr>
<tr align="center" bgcolor="#FFF6E9">
<td colspan="2"><input type="submit" name="Submit32" value="显示列表"></td>
</tr>
</table>
</form>--------------------下面是数据“推送”页 getareadata.php 代码
<?php
header("Cache-Control: no-store, no-cache,must-revalidate");//必须
require("config/database.php");
if ($_GET[obj]=="f_sheng")
{//如果是省框变动则生成对应此省的市的下拉框代码
$tdiv="showshi";
$output="<select name='f_shi' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择市==</option>";
$sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
}
else
{//如果是市框变动则生成对应此市的区的下拉框代码
$tdiv="showqu";
$output="<select name='f_qu' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择县/区==</option>";
$sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
}
$result=@odbc_do($db,$sql);
while ($rst=@odbc_fetch_array($result))
{//生成新的OPTION列表
$output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";
}
$output.="</select>";
echo "document.getElementById(\"$tdiv\").innerHTML=\"$output\";";
//本页生成的JS代码由 id="getareadata" 的JS执行。最后一行即是将生成的SELECT框代码插入到对应的DIV标签中。
?>
解决方案 »
- jquery.dynatree.js 1.2.1 自定义树图片
- 急,在线等!大家帮我看看这段代码哪里出问题了?
- js 写文件 先判断文件,然后再写为什么会乱码?
- 急!!!页面切换问题!
- 请教用过Antechinus JavaScript Editor 9的大侠们有关debug功能的问题!
- <input type="text" value="<%=df.format(aa.getBb())%>"/>,value里面插入javascript,怎么写?
- VML定位的问题
- 看不到单元格的数据?
- 如何在javascript里面调用一个普通的程序?
- 四舍五入精化到小数点1位,稍改!请各位大大帮忙
- 有谁知道怎么控制WEB的statusBar?
- 下拉列表框动态增加
搜一下
<HEAD>
<script language="javascript" defer="defer">
/*
说明:三级全国地区菜单
原创:恒星
其它技术文章:www.bjcan.com/hengxing/more.asp
日期:2006-1-20
*/
//封装一个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>[ajax.asp]<!--#include file="conn.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
%>简单吧!