广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-04 08:35:07 次阅读 稿源:互联网
    零七广告

    二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果。

    先看下效果

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

    XHTML

    首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。

    1. <label>大类:</label> 
    2. <select name="bigname" id="bigname"> 
    3.    <option value="1">前端技术</option> 
    4.    <option value="2">程序开发</option> 
    5.    <option value="3">数据库</option> 
    6. </select> 
    7. <label>小类:</label> 
    8. <select name="smallname" id="smallname"> 
    9. </select> 

    jQuery

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

    1. function getSelectVal(){ 
    2.     $.getJSON("server.php",{bigname:$("#bigname").val()},function(json){ 
    3.         var smallname = $("#smallname"); 
    4.         $("option",smallname).remove(); //清空原有的选项 
    5.         $.each(json,function(index,array){ 
    6.             var option = "<option value='"+array['id']+"'>"+array['title']+"</option>"
    7.             smallname.append(option); 
    8.         }); 
    9.     }); 

    注意,在遍历JSON数据追加之前一定要先将小类里的原有的项清空。清空选项的方法有两种,一种是上文代码中提到,还有一种更简单直接的方法:

    1. smallname.(); 

    然后,在页面载入后执行调用函数:

    1. $(function(){ 
    2.     getSelectVal(); 
    3.     $("#bigname").change(function(){ 
    4.         getSelectVal(); 
    5.     }); 
    6. }); 

    在页面初始的时候,下拉框是要设置选项的,所以在初始的时候就要调用getSelectVal(),而当大类选项改变时,也调用了getSelectVal()。

    PHP

    1. include_once("connect.php"); //链接数据库 
    2.  
    3. $bigid = $_GET["bigname"]; 
    4. if(isset($bigid)){ 
    5.     $q=mysql_query("select * from catalog where cid = $bigid"); 
    6.     while($row=mysql_fetch_array($q)){ 
    7.         $select[] = array("id"=>$row[id],"title"=>$row[title]); 
    8.     } 
    9.     echo json_encode($select); 

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

    最后附上MYSQL表结构:

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告