php里多级联动下拉菜单如何做?分不够再加。 要从数据库里取内容。不知道php里如何和js交互数据。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 交互~?用echo和print把js代码动态print出来不就可以了么~? 不过js更稳定,而且如果涉及到安全、保密方面还是不要用js更好。我就看到很多严谨的公司它们就不是一味的用js来做联动菜单。 不用js或VS?那用什么操作表单值,,,? 我做的是四级联动的下拉菜单,用dw表单中的跳转菜单,用php从数据库动态得到菜单项。 hicepig(冰心) 说说你的具体方法。给我发短信或者这里告诉我。然后给你加分。 用iframe,可以实现无限及连动 篇幅的关系,举个2级的例子,其它依此类推。数据库设计:database: db;table: sort1,sort2;sort1-data: id name vablue 1 aa 2 bbsort2-data: id name parent_id 1 aa-a 1 2 aa-x 1 3 bb-m 2 4 bb-j 2在dw中放置2个跳转菜单,在第一个select中添如下代码:<option>---请选择---</option><?php$host = "localhost";$db_name = "db";$username = "root";$password = "";$conn=mysql_connect($host,$username,$password) or die("不能链接到数据库!");$db=mysql_select_db($db_name,$conn);$sql="select * from sort1 order by id ASC";$result = mysql_db_query($db_name,$sql);while($row = mysql_fetch_array($result)) { $sort1_id = $row["id"]; $sort1_name = $row["name"]; $sort1_value = $row["value"]; if(!$sort1_value){ $str = "<option value = '?data1=$sort1_id'"; if($row["id"] == $data1){ $str .= "selected"; } } else{ $str = "<option value = '$sort1_value'"; } $str .= ">$sort1_name</option>"; echo $str; }?> continue在第二个select中添如下代码:$temp = $data1;$sql = "select * from sort2 where parent_id=$temp order by id ASC";$result = mysql_db_query($db_name,$sql);if(!$result){ echo "<option>------</option>";}else{ while($row = mysql_fetch_array($result)) { $sort2_id = $row["id"]; $sort2_name = $row["name"]; $sort2_value = $row["value"]; if(!$sort2_value){ $str = "<option value = '?data2=$sort2_id'"; if($row["id"] == $data2){ $str .= "selected"; } } else{ $str = "<option value = '$sort2_value'"; } $str .= ">$sort2_name</option>"; echo $str; }}?>网页版面的关系,我换了QQ菜单。这个菜单还存在一些问题,我只做到这一步而已,遇到问题再帖出来大家看看:) 我最近也被这样的问题弄的头昏脑胀,而且我的问题比较麻烦,是动态连接数据库的(mysql) ,而且不只一个表,不过还好是二级菜单,想上面那种人工填充的方法是没什么意义的,以前在asp里我也这么做过,如果选项不多而且几乎不会变动的话倒可以考虑,如果是数据库经常更新的话就没什么意思。还有 hicepig(冰心) 这位大侠你的 方法明显是不行的,因为你的代码存在两次访问服务器是不可能实现的!!(本人还特意将你的代码试了一下)还有最好的方法本人认为是用js,但是在php里我没有实现过,理论上是可以的,asp里我实现过!主要思路是在访问这张网页 的时候就一次性将你需要的数据库数据读出来,放在临时数组里,然后在选择第一个选项的时候利用js触发事件,将对应的选项(已经存在临时数组的)option到第二个选项里,这样的话就不存在客户端一个网页访问数据库两次的情况了!!有已经在php里实现这个功能的朋友,本人希望认识,谢谢(当然是数据库动态调用,且是两个表以上,同 hicepig(冰心) 的例子里的数据库文件相类似)Thanks in advance! 我也很关注!最好有PHP的例子! 我之前做的是4级联动的菜单,也是mysql数据库。我在这里只举了一个简单的例子——2级。有一个地方,第2段代码的前面漏掉了<?php不好意思。我又试了一下,没有问题的可以实现动态的从数据库显示相应的option项。对于Mickey1984() 的选项多的说,在这个程序中只需在数据库中增加数据项,怎么会不行呢??不是很明白你的意思。楼主试了吗?? 再次给出第2段代码: <?php$temp = $data1;$sql = "select * from sort2 where parent_id=$temp order by id ASC";$result = mysql_db_query($db_name,$sql);if(!$result){ echo "<option>------</option>";}else{ while($row = mysql_fetch_array($result)) { $sort2_id = $row["id"]; $sort2_name = $row["name"]; $sort2_value = $row["value"]; if(!$sort2_value){ $str = "<option value = '?data2=$sort2_id'"; if($row["id"] == $data2){ $str .= "selected"; } } else{ $str = "<option value = '$sort2_value'"; } $str .= ">$sort2_name</option>"; echo $str; }}?> $sort2_value = $row["value"];------------------------------sort2-data: id name parent_id 1 aa-a 1 2 aa-x 1 3 bb-m 2 4 bb-j 2--------------------------------hicepig(冰心) :数据库中的字段码跟网页代码中的字段名根本对不上,还有第一段代码中的VLAUE赋值给OPTION中的VLAUE,但数据库中的VLAUE是NULL,这个是何用意。其他我也不多说了。 to hicepig(冰心):我不知道你的情况是什么样子的,你更新后的代码还是不能实现(至少在我的情况下是这样的),而且还有错误。也许你用了两个网页,你可以仔细说说!我上次的思路是说:当你将第一个选项递交给服务器的时候,其实网页已经访问数据库一次了,而此时如果你还是同一个网页来填充第二个选项的话是不可能的,除非用两个网页,或者是一个网页调用另外一个js文件。我联系方式 [email protected]有问题讨论,谢谢! 肚子饿啊!!闪人啊,最近编com组件人都快死了啊 求fckeditor 的使用方法 能否一次查询取出各栏目记录的总数 求一个Php+mysql分页类及调用方法,,,最好也能将PHP+access版本的也给一个分页类,,,普通的俺有了,,谢谢大家了 问个关于数组的简单问题 高分求点作图的思路或代码!!! 请教一个php搜索 数据库文章内容的思路 PHP新手--关于数组的使用 执行MYSQL语句出错!不明白? 困惑啊!网页播放器问题 后台访问数据库老是数据丢失!!! 用apache怎样使文件夹里面的内容不可见 一个对数据库的操作问题?
用dw表单中的跳转菜单,用php从数据库动态得到菜单项。
数据库设计:
database: db;
table: sort1,sort2;
sort1-data: id name vablue
1 aa
2 bbsort2-data: id name parent_id
1 aa-a 1
2 aa-x 1
3 bb-m 2
4 bb-j 2
在dw中放置2个跳转菜单,
在第一个select中添如下代码:
<option>---请选择---</option>
<?php
$host = "localhost";
$db_name = "db";
$username = "root";
$password = "";
$conn=mysql_connect($host,$username,$password) or die("不能链接到数据库!");
$db=mysql_select_db($db_name,$conn);
$sql="select * from sort1 order by id ASC";
$result = mysql_db_query($db_name,$sql);
while($row = mysql_fetch_array($result)) {
$sort1_id = $row["id"];
$sort1_name = $row["name"];
$sort1_value = $row["value"];
if(!$sort1_value){
$str = "<option value = '?data1=$sort1_id'";
if($row["id"] == $data1){
$str .= "selected";
}
}
else{
$str = "<option value = '$sort1_value'";
}
$str .= ">$sort1_name</option>";
echo $str;
}
?>
在第二个select中添如下代码:
$temp = $data1;
$sql = "select * from sort2 where parent_id=$temp order by id ASC";
$result = mysql_db_query($db_name,$sql);
if(!$result){
echo "<option>------</option>";
}
else{
while($row = mysql_fetch_array($result)) {
$sort2_id = $row["id"];
$sort2_name = $row["name"];
$sort2_value = $row["value"];
if(!$sort2_value){
$str = "<option value = '?data2=$sort2_id'";
if($row["id"] == $data2){
$str .= "selected";
}
}
else{
$str = "<option value = '$sort2_value'";
}
$str .= ">$sort2_name</option>";
echo $str;
}
}
?>
网页版面的关系,我换了QQ菜单。这个菜单还存在一些问题,我只做到这一步而已,
遇到问题再帖出来大家看看:)
还有最好的方法本人认为是用js,但是在php里我没有实现过,理论上是可以的,asp里我实现过!
主要思路是在访问这张网页 的时候就一次性将你需要的数据库数据读出来,放在临时数组里,然后在选择第一个选项的时候利用js触发事件,将对应的选项(已经存在临时数组的)option到第二个选项里,这样的话就不存在客户端一个网页访问数据库两次的情况了!!
有已经在php里实现这个功能的朋友,本人希望认识,谢谢
(当然是数据库动态调用,且是两个表以上,同 hicepig(冰心) 的例子里的数据库文件相类似)Thanks in advance!
我在这里只举了一个简单的例子——2级。
有一个地方,第2段代码的前面漏掉了<?php
不好意思。
我又试了一下,没有问题的可以实现动态的从数据库显示相应的option项。对于Mickey1984() 的选项多的说,
在这个程序中只需在数据库中增加数据项,怎么会不行呢??
不是很明白你的意思。楼主试了吗??
<?php
$temp = $data1;
$sql = "select * from sort2 where parent_id=$temp order by id ASC";
$result = mysql_db_query($db_name,$sql);
if(!$result){
echo "<option>------</option>";
}
else{
while($row = mysql_fetch_array($result)) {
$sort2_id = $row["id"];
$sort2_name = $row["name"];
$sort2_value = $row["value"];
if(!$sort2_value){
$str = "<option value = '?data2=$sort2_id'";
if($row["id"] == $data2){
$str .= "selected";
}
}
else{
$str = "<option value = '$sort2_value'";
}
$str .= ">$sort2_name</option>";
echo $str;
}
}
?>
------------------------------
sort2-data: id name parent_id
1 aa-a 1
2 aa-x 1
3 bb-m 2
4 bb-j 2
--------------------------------
hicepig(冰心) :
数据库中的字段码跟网页代码中的字段名根本对不上,还有第一段代码中的VLAUE赋值给OPTION中的VLAUE,但数据库中的VLAUE是NULL,这个是何用意。
其他我也不多说了。
我不知道你的情况是什么样子的,你更新后的代码还是不能实现(至少在我的情况下是这样的),而且还有错误。也许你用了两个网页,你可以仔细说说!
我上次的思路是说:当你将第一个选项递交给服务器的时候,其实网页已经访问数据库一次了,而此时如果你还是同一个网页来填充第二个选项的话是不可能的,除非用两个网页,或者是一个网页调用另外一个js文件。
我联系方式 [email protected]
有问题讨论,谢谢!
闪人啊,最近编com组件人都快死了啊