请教如何实现下拉列表框的联动? http://www.dev-club.com/club/bbs/showAnnounce.asp?id=2454423 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/twt326里面有篇文章,是不才小弟写的,也许对你会有所帮助。还请赐教。http://blog.csdn.net/twt326/archive/2004/11/15/182854.aspx twt326(天地小子):你给文章打不开,能否烦你给发信箱[email protected]非常感谢! 请教twt326(天地小子):你的程序我看到了,但还没调通,有些不明白的地方希望你能解答一下:<form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">这里面act后面是什么意思?是不是还缺一个f_tjid的隐藏框?getareadata.php 代码中,$output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";这里如果数据库查询的字段不一样该怎么写? 我给你一个2级联动的菜单,你调试好,再加一级就可以了,都是从数据库取的,我这是国家对应省(市)的,首先在准备放联动菜单下拉框的地方放<?php require("country_procince.php");?>,因为下拉框我都放在country_procince.php里面写的country_procince.php文件内容如下:<?php session_start();include("../inc/constant.inc");include("../inc/db.inc");$query1=mysql_query("select * from country where language_kind = '0' order by id asc"); $fMenu=""; $fValue=""; while($data1=mysql_fetch_array($query1)){ $fMenu.="\"".$data1[name]."\","; $fValue.="\"".$data1[id]."\","; } $fMenu=substr($fMenu,0,(strlen($fMenu)-1)); $fMenu="[".$fMenu."]";//*****************************得到var fMenu $fValue=substr($fValue,0,(strlen($fValue)-1)); $fValue="[".$fValue."]";//*****************************得到var fValue //得到*****************************var sMenu $query1=mysql_query("select * from country where language_kind = '0' order by id asc"); //大类的SQLwhile($data1=mysql_fetch_array($query1)){ $province_id1=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id1' order by province_id desc"); //小类SQLwhile($data2=mysql_fetch_array($query2)){ $num=mysql_num_rows($query2); $i++; $sMenu.="\"".$data2[name]."\","; if($i==$num){ $sMenu="[".$sMenu."],["; $i=0; } } } $sMenu.="]"; $sMenu=str_replace("\",]","\"]",$sMenu); $sMenu=str_replace(",[]","]",$sMenu); if((substr($sMenu,0,2))=="[\""){ $sMenu="[".$sMenu; }else{ $sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//匹配 } //得到*****************************var sValue $query1=mysql_query("select * from country where language_kind = '0' order by id asc"); //大类while($data1=mysql_fetch_array($query1)){ $province_id=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id' order by province_id asc"); //小类 while($data2=mysql_fetch_array($query2)){ $nums=mysql_num_rows($query2); $j++; $sValue.="\"".$data2[id]."\","; if($j==$nums){ $sValue="[".$sValue."],["; $j=0; } } } $sValue.="]"; $sValue=str_replace("\",]","\"]",$sValue); $sValue=str_replace(",[]","]",$sValue); if((substr($sValue,0,2))=="[\""){ $sValue="[".$sValue; }else{ $sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//匹配 } ?> <div id="tar"></div> <SCRIPT LANGUAGE="JavaScript" DEFER> var fMenu = <?php echo $fMenu; ?>; var fValue = <?php echo $fValue; ?>; var sMenu = <?php echo $sMenu; ?>; var sValue = <?php echo $sValue; ?>; var oWhere = document.all.tar; var ofMenu = document.createElement("<SELECT name='bigclass'>"); var osMenu = document.createElement("<SELECT name='smallclass'>"); with(oWhere)appendChild(ofMenu),appendChild(osMenu); createMainOptions(); createSubOptions(0); ofMenu.onchange = function() {createSubOptions(this.selectedIndex);}; function createMainOptions() { for(var i=0;i<fMenu.length;i++)ofMenu.options[i] = new Option(fMenu[i],fValue[i]); } function createSubOptions(j) { with(osMenu) { length=0; for(var i=0;i<sMenu[j].length;i++)osMenu.options[i] = new Option(sMenu[j][i],sValue[j][i]); } } </SCRIPT> <?php/* 调用方法: $bigclass=$_POST["bigclass"];//取得大类的id值 $smallclass=$_POST["smallclass"];//取得小类的id值 接下来就知道该怎么做了吧…… 附表的结构: 可能有的表的结构和我有些不同,但基本点都一样,修改程序 中对应字段和表名就ok 程序写的有点乱,不过绝对可以放心的使用 欢迎与我交流探讨! --------------------------------------------------------- 大类的表news_bclass结构 CREATE TABLE news_bclass ( id int(11) NOT NULL auto_increment, bname varchar(10) NOT NULL default '', PRIMARY KEY (id), UNIQUE KEY id_2 (id), KEY id (id) ) TYPE=MyISAM; 字段说明:bname为大类中文名称 ------------------------------ 小类的表news_sclass结构 CREATE TABLE news_sclass ( id int(11) NOT NULL auto_increment, sname varchar(10) NOT NULL default '', parentid int(10) NOT NULL default '0', bname varchar(10) NOT NULL default '', PRIMARY KEY (id), UNIQUE KEY id_2 (id), KEY id (id) ) TYPE=MyISAM; 字段说明:sname为小类中文名称 parendid为大类中的id值 bname为大类中文名称 ----------------------------------------------------------- */ ?> 用javascript控制先用php从数据表里取出数据再用js生成不同的options php中非静态方法的静态调用[期待拍砖] DEDE织梦系统 在线下的订单怎么自动发送到一个指定邮箱 急。。。。。 DEDECMS 图片路径修改-不是修改日期的那种 为什么用了limit还会进行全表扫描? 如何读取刚填入表单中的数据类容? PHP里面一段内容怎么去除HTML代码 大家都是怎么解决smarty模板文件在设计时和程序运行时图片路径不同的问题的。 请问@代表什么? 帮忙(必送分) 关于PHP无法调用自己写的COM组件 谁需要 eXtremePHP 的手册 iframe/二维数组session中传递方法/搜了以前的帖子,写的都不太明白啊,还是我太笨了啊
里面有篇文章,是不才小弟写的,也许对你会有所帮助。还请赐教。
http://blog.csdn.net/twt326/archive/2004/11/15/182854.aspx
你给文章打不开,能否烦你给发信箱[email protected]
非常感谢!
<form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">
这里面act后面是什么意思?
是不是还缺一个f_tjid的隐藏框?
getareadata.php 代码中,$output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";这里如果数据库查询的字段不一样该怎么写?
<?php
session_start();
include("../inc/constant.inc");
include("../inc/db.inc");$query1=mysql_query("select * from country where language_kind = '0' order by id asc");
$fMenu="";
$fValue="";
while($data1=mysql_fetch_array($query1)){
$fMenu.="\"".$data1[name]."\",";
$fValue.="\"".$data1[id]."\","; }
$fMenu=substr($fMenu,0,(strlen($fMenu)-1));
$fMenu="[".$fMenu."]";//*****************************得到var fMenu
$fValue=substr($fValue,0,(strlen($fValue)-1));
$fValue="[".$fValue."]";//*****************************得到var fValue //得到*****************************var sMenu
$query1=mysql_query("select * from country where language_kind = '0' order by id asc"); //大类的SQL
while($data1=mysql_fetch_array($query1)){
$province_id1=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id1' order by province_id desc"); //小类SQL
while($data2=mysql_fetch_array($query2)){
$num=mysql_num_rows($query2);
$i++;
$sMenu.="\"".$data2[name]."\",";
if($i==$num){
$sMenu="[".$sMenu."],[";
$i=0;
}
}
}
$sMenu.="]";
$sMenu=str_replace("\",]","\"]",$sMenu);
$sMenu=str_replace(",[]","]",$sMenu);
if((substr($sMenu,0,2))=="[\""){
$sMenu="[".$sMenu;
}else{
$sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//匹配
} //得到*****************************var sValue
$query1=mysql_query("select * from country where language_kind = '0' order by id asc"); //大类
while($data1=mysql_fetch_array($query1)){
$province_id=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id' order by province_id asc"); //小类
while($data2=mysql_fetch_array($query2)){
$nums=mysql_num_rows($query2);
$j++;
$sValue.="\"".$data2[id]."\",";
if($j==$nums){
$sValue="[".$sValue."],[";
$j=0;
}
}
}
$sValue.="]";
$sValue=str_replace("\",]","\"]",$sValue);
$sValue=str_replace(",[]","]",$sValue);
if((substr($sValue,0,2))=="[\""){
$sValue="[".$sValue;
}else{
$sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//匹配
} ?>
<div id="tar"></div>
<SCRIPT LANGUAGE="JavaScript" DEFER>
var fMenu = <?php echo $fMenu; ?>;
var fValue = <?php echo $fValue; ?>;
var sMenu = <?php echo $sMenu; ?>;
var sValue = <?php echo $sValue; ?>; var oWhere = document.all.tar;
var ofMenu = document.createElement("<SELECT name='bigclass'>");
var osMenu = document.createElement("<SELECT name='smallclass'>");
with(oWhere)appendChild(ofMenu),appendChild(osMenu); createMainOptions();
createSubOptions(0); ofMenu.onchange = function() {createSubOptions(this.selectedIndex);}; function createMainOptions() {
for(var i=0;i<fMenu.length;i++)ofMenu.options[i] = new Option(fMenu[i],fValue[i]);
}
function createSubOptions(j) {
with(osMenu) {
length=0;
for(var i=0;i<sMenu[j].length;i++)osMenu.options[i] = new Option(sMenu[j][i],sValue[j][i]);
}
}
</SCRIPT>
<?php
/*
调用方法:
$bigclass=$_POST["bigclass"];//取得大类的id值
$smallclass=$_POST["smallclass"];//取得小类的id值
接下来就知道该怎么做了吧……
附表的结构:
可能有的表的结构和我有些不同,但基本点都一样,修改程序
中对应字段和表名就ok
程序写的有点乱,不过绝对可以放心的使用
欢迎与我交流探讨!
---------------------------------------------------------
大类的表news_bclass结构 CREATE TABLE news_bclass (
id int(11) NOT NULL auto_increment,
bname varchar(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id_2 (id),
KEY id (id)
) TYPE=MyISAM; 字段说明:bname为大类中文名称
------------------------------ 小类的表news_sclass结构 CREATE TABLE news_sclass (
id int(11) NOT NULL auto_increment,
sname varchar(10) NOT NULL default '',
parentid int(10) NOT NULL default '0',
bname varchar(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id_2 (id),
KEY id (id)
) TYPE=MyISAM; 字段说明:sname为小类中文名称
parendid为大类中的id值
bname为大类中文名称
-----------------------------------------------------------
*/
?>
先用php从数据表里取出数据
再用js生成不同的options