PHP+jQuery+MySQL实现二级联动下拉菜单示例

前端之家收集整理的这篇文章主要介绍了PHP+jQuery+MySQL实现二级联动下拉菜单示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
感兴趣PHP+jQuery+MysqL实现二级联动下拉菜单示例的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。<br>
二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MysqL来实现大小分类二级下拉联动效果

实现的效果就是当选择大类时,小类下拉框里的选项内容也随着改变。实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MysqL数据库,得到相应的小类,并返回JSON数据给前端处理。

XHTML


首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。
<label>大类:</label> 
<select name="bigname" id="bigname"> 
   <option value="1">前端技术</option> 
   <option value="2">程序开发</option> 
   <option value="3">数据库</option> 
</select> 
<label>小类:</label> 
<select name="smallname" id="smallname"> 
</select>

jQuery

先写一个函数获取大类选择框的值,并通过$.getJSON方法传递给后台server.PHP,读取后台返回的JSON数据,并通过$.each方法遍历JSON数据,将对应的值写入一个option字符串,最后将option追加到小类里。

function getSelectVal(){ 
    $.getJSON("server.PHP",{bigname:$("#bigname").val()},function(json){ 
        var smallname = $("#smallname"); 
        $("option",smallname).remove(); //清空原有的选项 
        $.each(json,function(index,array){ 
            var option = "<option value='"+array['id']+"'>"+array['title']+"</option>"; 
            smallname.append(option); 
        }); 
    }); 
}
注意,在遍历JSON数据追加之前一定要先将小类里的原有的项清空。清空选项的方法有两种,一种是上文代码中提到,还有一种更简单直接的方法
smallname.empty(); 
然后,在页面载入后执行调用函数
$(function(){ 
    getSelectVal(); 
    $("#bigname").change(function(){ 
        getSelectVal(); 
    }); 
}); 
页面初始的时候,下拉框是要设置选项的,所以在初始的时候就要调用getSelectVal(),而当大类选项改变时,也调用了getSelectVal()。

PHP

include_once("connect.PHP"); //链接数据库 
 
$bigid = $_GET["bigname"]; 
if(isset($bigid)){ 
    $q=MysqL_query("select * from catalog where cid = $bigid"); 
    while($row=MysqL_fetch_array($q)){ 
        $select[] = array("id"=>$row[id],"title"=>$row[title]); 
    } 
    echo json_encode($select); 
}

根据jQuery传递过来的大类的value值,构造sql语句查询分类表,最终输出JSON数据。本站在未做特别说明的情况下所使用的PHPMysqL连接,和查询语句等均使用原始语句方法MysqL_query等,目的就是为了让读者能够直观的知晓数据的传输查询

最后附上MysqL表结构:

CREATE TABLE `catalog` ( 
  `id` mediumint(6) NOT NULL auto_increment,`cid` mediumint(6) NOT NULL default '0',`title` varchar(50) NOT NULL,PRIMARY KEY  (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


  原文链接:https://www.f2er.com/php/527839.html

猜你在找的PHP相关文章