• jQuery+PHP+MySQL简单无限级联实现


        本文简单实现jQuery无限级联效果。

    主要包含3个文件:index.html(主页),wuxianjilian.php(数据处理),wuxianjilian.sql(MySQL数据文件)

    1. index.html

     1 <html>
     2 <head>
     3     <title>无限级联</title>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <meta http-equiv="Content-Language" content="zh-CN" />
     6     <script type="text/javascript" src="https://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script>
     7 </head>
     8 <body>
     9 <div id="jilianContainer"></div>
    10 <script type="text/javascript">
    11 $(document).ready(function(){
    12     var getData = function(obj){
    13         $.ajax({
    14             url:'wuxianjilian.php',
    15             type:'POST',
    16             data:{"pid":obj.val()},
    17             dataType:'json',
    18             async:false,
    19             success:function(data){
    20                 if($(".selection").length){
    21                     $(".selection:gt("+$(obj).index()+")").remove();    //移除后面所有子级下拉菜单
    22                     $(".selection:last").after(data);                    //添加子级下拉菜单
    23                 }else {
    24                     $("#jilianContainer").append(data);                    //初始加载情况
    25                 }
    26                 //所有下拉响应
    27                 $(".selection").unbind().change(function(){
    28                     getData($(this));
    29                 });
    30             },
    31             error:function(msg){
    32                 alert('error');
    33             }
    34         });
    35     }
    36     
    37     //Init
    38     getData($(this));
    39     
    40 });
    41 </script>
    42 
    43 <!-- 数据存储示例,仅提取数据,不做操作 -->
    44 
    45 <div style="height:100px;display:block;"></div>
    46 <input type="button" value="存储数据" id="save"></input>
    47 <script type="text/javascript">
    48 $(document).ready(function(){
    49     $("#save").click(function(){
    50         var data = [];
    51         $(".selection").each(function(){
    52             data.push($.trim($(this).val()));
    53         })
    54         
    55         alert(data.join(','));
    56     });
    57 });
    58 </script>
    59 
    60 </body>
    61 </html>

    2. wuxianjilian.php

     1 <?php
     2     header("Content-type: text/html; charset=utf-8"); 
     3 
     4     //数据库连接操作
     5     $conn = mysql_connect("localhost","Zjmainstay","") or die("Can not connect to database.Fatal error handle by ". __FILE__);
     6     mysql_select_db("test",$conn);            //数据库名为 test
     7     mysql_query("SET NAMES utf8",$conn);
     8     
     9     //获取父级id
    10     $pid = (int)$_POST['pid'];
    11     
    12     //查询子级
    13     $sql = "SELECT id,text FROM `wuxianjilian` WHERE pid={$pid}";
    14     $result = mysql_query($sql,$conn);
    15     
    16     //组装子级下拉菜单
    17     $html = '';
    18     while($row = mysql_fetch_assoc($result)){
    19         $html .= '<option value="'.$row['id'].'">'.$row['text'].'</option>';
    20     }
    21 
    22     if(!empty($html)) $html = '<select class="selection"><option value="">请选择</option>' . $html . '</select>';
    23     
    24     //输出下拉菜单
    25     echo json_encode($html);
    26 //End_php

    3. wuxianjilian.sql

     1 wuxianjilian.sql
     2 /*
     3 Navicat MySQL Data Transfer
     4 
     5 Source Server         : localhost
     6 Source Server Version : 50516
     7 Source Host           : localhost:3306
     8 Source Database       : test
     9 
    10 Target Server Type    : MYSQL
    11 Target Server Version : 50516
    12 File Encoding         : 65001
    13 
    14 Date: 2012-10-24 20:59:09
    15 */
    16 
    17 SET FOREIGN_KEY_CHECKS=0;
    18 -- ----------------------------
    19 -- Table structure for `wuxianjilian`
    20 -- ----------------------------
    21 DROP TABLE IF EXISTS `wuxianjilian`;
    22 CREATE TABLE `wuxianjilian` (
    23   `id` int(11) NOT NULL AUTO_INCREMENT,
    24   `pid` int(11) DEFAULT NULL,
    25   `text` varchar(32) DEFAULT NULL,
    26   PRIMARY KEY (`id`)
    27 ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
    28 
    29 -- ----------------------------
    30 -- Records of wuxianjilian
    31 -- ----------------------------
    32 INSERT INTO `wuxianjilian` VALUES ('1', '0', 'A0');
    33 INSERT INTO `wuxianjilian` VALUES ('2', '0', 'B0');
    34 INSERT INTO `wuxianjilian` VALUES ('3', '1', 'C1');
    35 INSERT INTO `wuxianjilian` VALUES ('4', '1', 'D1');
    36 INSERT INTO `wuxianjilian` VALUES ('5', '1', 'E1');
    37 INSERT INTO `wuxianjilian` VALUES ('6', '2', 'F2');
    38 INSERT INTO `wuxianjilian` VALUES ('7', '2', 'G2');
    39 INSERT INTO `wuxianjilian` VALUES ('8', '3', 'H3');
    40 INSERT INTO `wuxianjilian` VALUES ('9', '3', 'I3');
    41 INSERT INTO `wuxianjilian` VALUES ('10', '3', 'J3');
    42 INSERT INTO `wuxianjilian` VALUES ('11', '3', 'K3');
    43 INSERT INTO `wuxianjilian` VALUES ('12', '4', 'L4');
    44 INSERT INTO `wuxianjilian` VALUES ('13', '4', 'M4');
    45 INSERT INTO `wuxianjilian` VALUES ('14', '8', 'N8');
    46 INSERT INTO `wuxianjilian` VALUES ('15', '9', 'N9');
    47 INSERT INTO `wuxianjilian` VALUES ('16', '14', 'O14');
    48 INSERT INTO `wuxianjilian` VALUES ('17', '14', 'P14');
    49 INSERT INTO `wuxianjilian` VALUES ('18', '14', 'Q14');
    50 INSERT INTO `wuxianjilian` VALUES ('19', '17', 'R17');
    51 INSERT INTO `wuxianjilian` VALUES ('20', '17', 'S18');
    52 INSERT INTO `wuxianjilian` VALUES ('21', '20', 'T20');
     1 /*
     2 Navicat MySQL Data Transfer
     3 
     4 Source Server         : localhost
     5 Source Server Version : 50516
     6 Source Host           : localhost:3306
     7 Source Database       : test
     8 
     9 Target Server Type    : MYSQL
    10 Target Server Version : 50516
    11 File Encoding         : 65001
    12 
    13 Date: 2012-10-24 20:59:09
    14 */
    15 
    16 SET FOREIGN_KEY_CHECKS=0;
    17 -- ----------------------------
    18 -- Table structure for `wuxianjilian`
    19 -- ----------------------------
    20 DROP TABLE IF EXISTS `wuxianjilian`;
    21 CREATE TABLE `wuxianjilian` (
    22   `id` int(11) NOT NULL AUTO_INCREMENT,
    23   `pid` int(11) DEFAULT NULL,
    24   `text` varchar(32) DEFAULT NULL,
    25   PRIMARY KEY (`id`)
    26 ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
    27 
    28 -- ----------------------------
    29 -- Records of wuxianjilian
    30 -- ----------------------------
    31 INSERT INTO `wuxianjilian` VALUES ('1', '0', 'A0');
    32 INSERT INTO `wuxianjilian` VALUES ('2', '0', 'B0');
    33 INSERT INTO `wuxianjilian` VALUES ('3', '1', 'C1');
    34 INSERT INTO `wuxianjilian` VALUES ('4', '1', 'D1');
    35 INSERT INTO `wuxianjilian` VALUES ('5', '1', 'E1');
    36 INSERT INTO `wuxianjilian` VALUES ('6', '2', 'F2');
    37 INSERT INTO `wuxianjilian` VALUES ('7', '2', 'G2');
    38 INSERT INTO `wuxianjilian` VALUES ('8', '3', 'H3');
    39 INSERT INTO `wuxianjilian` VALUES ('9', '3', 'I3');
    40 INSERT INTO `wuxianjilian` VALUES ('10', '3', 'J3');
    41 INSERT INTO `wuxianjilian` VALUES ('11', '3', 'K3');
    42 INSERT INTO `wuxianjilian` VALUES ('12', '4', 'L4');
    43 INSERT INTO `wuxianjilian` VALUES ('13', '4', 'M4');
    44 INSERT INTO `wuxianjilian` VALUES ('14', '8', 'N8');
    45 INSERT INTO `wuxianjilian` VALUES ('15', '9', 'N9');
    46 INSERT INTO `wuxianjilian` VALUES ('16', '14', 'O14');
    47 INSERT INTO `wuxianjilian` VALUES ('17', '14', 'P14');
    48 INSERT INTO `wuxianjilian` VALUES ('18', '14', 'Q14');
    49 INSERT INTO `wuxianjilian` VALUES ('19', '17', 'R17');
    50 INSERT INTO `wuxianjilian` VALUES ('20', '17', 'S18');
    51 INSERT INTO `wuxianjilian` VALUES ('21', '20', 'T20');

     效果图:

     

         图(1) 仅下拉框

           图(2)层级提示+下拉框

                  图(3)存储数据点击响应

    简单贴几张图,不过还是亲自测试效果好点,请点击演示地址测试。

    演示地址:无限级联仅下拉选项框版本

    下载地址:jQuery+PHP+MySQL简单无限级联实现源码

    作者:Zjmainstay
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    版权信息
  • 相关阅读:
    JVM工作原理--垃圾收集
    并发编程之单例模式
    设计模式之动态代理
    UML类图基础
    CAP理论的理解
    Dubbo RPC调用参数校验---错误message自动返回
    ELK日志分析系统搭建
    Kafka原理及应用(一)
    HTTPS的原理
    Maven 生命周期的概念(指令默认顺序执行)
  • 原文地址:https://www.cnblogs.com/Zjmainstay/p/jQuery_wuxianjilian.html
Copyright © 2020-2023  润新知