求一段关联代码

wangliuwei1987 2009-12-04 02:13:44
两个数据表:
biaoti {id,title,num) ,s_biaoti(id,s_title,s_num,t_id(t_id对应title的id))
当选择biaoti表里面的title时,就会自动列出title在s_biaoti表对应的s_title的值
大家尽量的少用JS代码,我对JS不是太熟悉
...全文
155 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
alljill 2009-12-17
  • 打赏
  • 举报
回复
10楼的代码可否把库结构发过来,不然实在看不懂,谢谢
kingfly1818 2009-12-07
  • 打赏
  • 举报
回复
原来就是2级联动。。。。。。。。。。。我还以为什么问题呢
总哈哈 2009-12-07
  • 打赏
  • 举报
回复
这个问题可以用很少的js实现的,你写一个跳转的功能,这个功能dreamwerver里面自带,可以直接用,
然后在URL加两个参数就OK了,两个控件各代表一个参数,然后根据参数到数据库取数据显示出来就可以了。无限级的也可以弄,只是在数据库里面做一些手脚,用一个字段专门用于排序即可。
wqli07 2009-12-07
  • 打赏
  • 举报
回复
呵呵 有用递归的算法写的吗???【也就是传说中的“无限极分类(联动)”】帮顶下!!!!
阿_布 2009-12-05
  • 打赏
  • 举报
回复
mark!
阿_布 2009-12-05
  • 打赏
  • 举报
回复

<?php
include_once("../class/db.php");
header("Content-Type:text/html;charset=utf-8");
$db = new DataBase("localhost","root","123","csdn","utf8");
$sql = "select p.id,pname,group_concat(cname) as cname from province p,city c where p.id=c.pid group by pname order by p.id";
$records = $db->sqlquery($sql);
?>
<html>
<head>
<title>级联下拉框</title>
<script language="javascript">
var array = new Array();
function convert(value){
var val = array[value];
var sub = val.split(",");
var city = document.getElementById("city");
city.options.length=0;
for(i=0;i<sub.length;i++){
var option = document.createElement("option");
option.value = sub[i];
option.text = sub[i];
city.add(option);
}
}
</script>
</head>
<body>
<select name="province" id="province" onchange="convert(this.value)">
<?php
foreach ($records as $key=>$record){
echo "<option value='$key'>$record->pname</option>"
?>
<script language="javascript">
array[<?=$key ?>] = "<?=$record->cname ?>";
</script>
<?php
}
?>
</select>
<select name="city" id="city">
</select>
<script language="javascript">
var sub = array[0].split(",");
var city = document.getElementById("city");
city.options.length=0;
for(i=0;i<sub.length;i++){
var option = document.createElement("option");
option.value = sub[i];
option.text = sub[i];
city.add(option);
}
</script>
</body>
</html>
nieliwu 2009-12-05
  • 打赏
  • 举报
回复
那你就先用SQL把这些关联的数据都取出来,然后放在DIV里进行隐藏,然后选中的时候在显示对应的子类不就OK了
tony-杨 2009-12-05
  • 打赏
  • 举报
回复
当biaoti表所在的Select发生change动作时,取出s_biaoti中tid对应的数据生成第二个Select
应该差不多就是下拉框联动的意思。

两种方式
1、两个表的数据都取出来(缓存为Js文件最好),按照一定的规则生成数据,发生改变读取相应的数据填充
2、第一次只取出biaoti数据直接生成Select,发生change时AJAX获取s_biaoti数据填充
yishiwucheng 2009-12-05
  • 打赏
  • 举报
回复
我空间的博客就有一个例子
wangliuwei1987 2009-12-04
  • 打赏
  • 举报
回复
怎么没人帮忙啊,谁帮写点代码,谢谢大家了
wangliuwei1987 2009-12-04
  • 打赏
  • 举报
回复
能写个从数据库里查询的,我的JS不好,所以不怎么会修改
海泪知己 2009-12-04
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body bgcolor="#FFFFFF">
<html>

<script language="javascript">

var areaArray = new Array();

areaArray[areaArray.length]=new Array("10","北京市");

areaArray[areaArray.length]=new Array("20","天津市");

areaArray[areaArray.length]=new Array("30","上海市");

var townArray = new Array();

townArray[townArray.length]=new Array("10","10010","东城区");
townArray[townArray.length]=new Array("10","10011","西城区");
townArray[townArray.length]=new Array("10","3000","朝阳区");
townArray[townArray.length]=new Array("10","4000","海淀区");
townArray[townArray.length]=new Array("10","5","宣武区");
townArray[townArray.length]=new Array("10","6","崇文区");

townArray[townArray.length]=new Array("20","1","南浔镇");

townArray[townArray.length]=new Array("20","2","菱湖镇");

townArray[townArray.length]=new Array("30","1","乐清");

townArray[townArray.length]=new Array("30","2","苍南");

function setTown(obj1ID,obj2ID){

var objArea = document.getElementById(obj1ID);

var objTown = document.getElementById(obj2ID);

var i;

var itemArray = null;

if(objArea.value.length > 0){

itemArray = new Array();

for(i=0;i<townArray.length;i++){

if(townArray[i][0]==objArea.value){

itemArray[itemArray.length]=new Array(townArray[i][1],townArray[i][2]);

}

}

}

for(i = objTown.options.length ; i >= 0 ; i--){

objTown.options[i] = null;

}

objTown.options[0] = new Option("请选地区");

objTown.options[0].value = "";



if(itemArray != null){

for(i = 0 ; i < itemArray.length; i++){

objTown.options[i+1] = new Option(itemArray[i][1]);

if(itemArray[i][0] != null){

objTown.options[i].value = itemArray[i][0];

}

}

}

}

</script>

<body>

<table width="99%" border="0" align="center" style="border-bottom:1px solid #cccccc">

<tr>

<td width="10"><select name="areaid" id="areaid" onChange="setTown('areaid','townid')">

<option value="">请选市县</option>

<option value="10">北京</option>

<option value="20">上海</option>

<option value="30">安徽</option>

</select>

</td>

<td width="10"><select name="townid" id="townid">

<option value="">请选地区</option>

</select>

</td>

</tr>

</table>

</body>

</html>
wangliuwei1987 2009-12-04
  • 打赏
  • 举报
回复
不是这个意思,我是想做个列表菜单
biaoti表里的title为父类,s_biaoti表里面的s_title为子类
当选择titel时,自动选择s_biaoti里面的s_title的值
<select name>
<option></option>
</select>
这样的
江南昆虫 2009-12-04
  • 打赏
  • 举报
回复
select b.title,s.s_title from biaoti b,s_biaoti s where s.t_id=b.id

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧