首页 > php函数 > 一个用数据库的php二级联动

一个用数据库的php二级联动

<?php 
/******************************************* 
**********功能:php二级联动菜单************* 
**********作者:冲星************************* 
**********Email:njj@nuc.edu.cn************** 
**********日期:2004/10/02****************** 
**********请转载时保留版权信息************** 
*******************************************/ 
require_once('db.inc.php');//数据库连接 
$db=new hq_online; 
$db1=new hq_online; 
$db->query("select * from news_bclass order by id desc"); 
$fMenu=""; 
$fValue=""; 
while($db->next_record()){ 
$fMenu.="\"".$db->Record["bname"]."\","; 
$fValue.="\"".$db->Record["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 
$db->query("select * from news_bclass order by id desc"); 
while($db->next_record()){ 
$parentid=$db->Record["id"]; 
$db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc"); 
while($db1->next_record()){ 
$num=$db1->num_rows(); 
$i++; 
$sMenu.="\"".$db1->Record["sname"]."\","; 
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 
$db->query("select * from news_bclass order by id desc"); 
while($db->next_record()){ 
$parentid=$db->Record["id"]; 
$db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc"); 
while($db1->next_record()){ 
$nums=$db1->num_rows(); 
$j++; 
$sValue.="\"".$db1->Record["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 

/* 

调用方法: 

将此代码保存为文件ld2.php 

例如要在write.php页面放一个二级联动,则在write.php页面 

要放置二级联动的地方加一句require_once("ld2.php"); 

若write.php要向save.php页面提交数据则在save.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为大类中文名称 

----------------------------------------------------------- 

*/ 

?> 


db.inc.php文件的内容 

<?php 
class hq_online extends db_sql{ 
var $Host="localhost"; 
var $Database="hq"; 
var $User="root"; 
var $password=""; 
}


本文地址:http://www.phprm.com/function/e5d86044f7d22d4060c276efc47319eb.html

转载随意,但请附上文章地址:-)

标签:none

发表留言