码迷,mamicode.com
首页 > 其他好文 > 详细

原生的三级联动下拉框

时间:2017-10-18 16:43:11      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:选择   type   连接   pdo   rom   mon   .com   include   public   

最近在工作中遇到了一个需要三级联动的功能,之前也只用到过地区联动的三级菜单,还是用的插件,这次就不没那么好了,没办法,自己写咯,我下面的写出来的是原生的;写的不好,不要喷我

一共有三个文件,需要引入jquery;分别是,index.php,data.php和get_two.php三个文件,具体代码如下:

index.php:

<?php

include "./data.php";

?>

<!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" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>Document</title>

</head>

<body>

三级联动下拉框:

<select name="one" id="one">

<option value="">一级选项</option>

<?php foreach($result as $key=>$val): ?>

<?php if($val[‘level‘]==1):?>

<option value="<?php echo $val[‘code_name‘];?>"><?php echo $val[‘name‘]?></option>

<?php endif;?>

<?endforeach;?>

</select>

<select name="two" id="two">

<option value="">二级选项</option>

</select>

<select name="three" id="three">

<option value="">三级选项</option>

</select>

</body>

</html>

<script type="text/javascript" src="../../public/jquery.min.js"></script>

<script>

$("#one").change(function(){

 var id =  $(this).val();

 if(id){

$.post("./get_two.php",{id:id,level:2},function(data){

if(data){

console.log(data);

html=‘<option value="all">请选择</option>‘;

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

html+=‘<option value="‘+data[i][‘code_name‘]+‘">‘+data[i][‘name‘]+‘</option>‘;

}

$("#two").empty();

$("#two").append(html);

}

},‘json‘);

 }

})

$("#two").change(function(){

 var id =  $(this).val();

 if(id){

$.post("./get_two.php",{id:id,level:3},function(data){

if(data){

console.log(data);

html=‘<option value="all">请选择</option>‘;

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

html+=‘<option value="‘+data[i][‘code_name‘]+‘">‘+data[i][‘name‘]+‘</option>‘;

}

$("#three").empty();

$("#three").append(html);

}

},‘json‘);

 }

})

</script>

 

data.php页面:

<?php

 

 

try{

  $pdo = new PDO("mysql:host=localhost;dbname=test","root","root"); 

                   }

   catch(PDOException $e){

                 echo "数据库连接失败:".$e->getMessage();

                   exit;

                   }

$query = "select * from sanji";

$pdostatement = $pdo->query($query);  

$result = $pdostatement->fetchAll(PDO::FETCH_ASSOC);

 

get_two.php页面:

<?php

try{

  $pdo = new PDO("mysql:host=localhost;dbname=test","root","root"); 

                   }

   catch(PDOException $e){

                 echo "数据库连接失败:".$e->getMessage();

                   exit;

                   }

 $id = $_POST[‘id‘];

 $level = $_POST[‘level‘];

$query = "select * from sanji where level = ‘$level‘ and code_name like ‘$id-%‘";

$pdostatement = $pdo->query($query);  

$result = $pdostatement->fetchAll(PDO::FETCH_ASSOC);

echo json_encode($result);

然后是数据库表:

技术分享

 

 

 

 

 

技术分享

原生的三级联动下拉框

标签:选择   type   连接   pdo   rom   mon   .com   include   public   

原文地址:http://www.cnblogs.com/ccyy123/p/7687354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!