php数据库省市二级联动,php省市区三级联动

php二级联动菜单

我给你提供一个三级的

创新互联公司提供高防主机、云服务器、香港服务器、达州主机托管

主页面是

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

html xmlns=""

head

title三级联动下拉列表/title

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

script type="text/javascript" src="/js/jquery.js"/script

script type="text/javascript"

!--

var temp;

var ids = ['province','city','eare1']; //默认要操作的三个ID,注意先后顺序,不可颠倒。

// 参数说明:pid是关联 的id (第二个参数) 的父级,n表示是第几级,(如第一级,第二级,第三级),selected 默认被选中的选择的主键

function getList (pid,id,n,selected) {

var list = document.getElementById(id);

$.post ('ajax.php?act=getList',{'pid':pid,'action':id},function (data) {

var temp1 = eval('('+ data +')'); //把传过来的字符串转化成一个JSON对象。

var leng = temp1.length;

var n = (n ids.length ) ? ids.length : n;

n = (n 0 ) ? 0 : n;

for (var j = n ; j ids.length ; j++)

{

var t = 'temp'+j

t = document.getElementById(ids[j]);

t.options.length = 1;

t.options[0]=new Option('请选择','*');

}

if (leng 0) {

list.length = leng + 1;

for (var i=0;i temp1.length ;i++ )

{

list.options[i+1]=new Option(decodeURI(temp1[i].key),temp1[i].val);

if (temp1[i].region_id == selected ) {

list.options[0].selected = 'selected';

}

if (selectedlist.options[i+1].value==selected){

list.options[i+1].selected = 'selected';

}

}

}

if(pid == '*') {

switch(id){

case 'city':

t = document.getElementById('city');

t.options.length = 1;

t.options[0]=new Option('请选择','*');

t = document.getElementById('eare1');

t.options.length = 1;

t.options[0]=new Option('请选择','*');

break;

case 'eare1':

t = document.getElementById('eare1');

t.options.length = 1;

t.options[0]=new Option('请选择','*');

break;

}

}

if(document.getElementById('city')document.getElementById('city').value=='*'){

t = document.getElementById('eare1');

t.options.length = 1;

t.options[0]=new Option('请选择','*');

}

});

}

$(function () {

getList ('1','province',1);

//三个都写是为了修改的时候,请三个框中默认的都有选中的值,一般增加的时候只写第一个就可以了。

});

/script

/head

body

div

select name="yc1" id="province" onchange="getList (this.value,'city',1)"

option value="*" selected="selected"请选择/option

/select

select name="yc2" id="city" onchange="getList (this.value,'eare1',2)"

option value="*" selected="selected"请选择/option

/select

select name="yc3" id="eare1"

option value="*" selected="selected"请选择/option

/select

/div

/body

/html

AJAX 页面是

?php

$link = mysql_connect("localhost", "root", "123456");

mysql_select_db("mydatabase");

$act = isset ($_GET['act']) ? $_GET['act'] : '' ;

$action = isset ($_POST['action']) ? $_POST['action'] : '' ;

$pid = isset ($_POST['pid']) ? $_POST['pid'] : '' ;

$arr = array();

switch ($action) {

case 'province':

$sql = "select DISTINCT(province_name) val,province_id key from province order by id";

$res = mysql_query($sql);

while($col = mysql_fetch_array($res)){

$arr[] = $col;

}

break;

case 'city':

$sql = "select DISTINCT(city_name) val,city_id key from city where `province_id` = '".$pid."'

order by id";

$res = mysql_query($sql);

while($col = mysql_fetch_array($res)){

$arr[] = $col;

}

break;

case 'eare1':

$sql = "select DISTINCT(eare1_name) val,eare1_id key from eare1 where `city_id` = '".$pid."'

order by id";

$res = mysql_query($sql);

while($col = mysql_fetch_array($res)){

$arr[] = $col;

}

break;

}

mysql_close($link);

$list = array();

$i = 0;

foreach($arr as $k = $v){

foreach($v as $key = $value){

if(!preg_match("|^\d+|",$key)){

$list[$i][$key] = $value;

}

}

$i++;

}

print_r (json_encode ($list));

数据库关联是

表province 区域表

有ID province_id province_name三个字段

id是自增的 province_id为唯一

表CITY 城市表

有ID city_id city_name province_id

其中province_id与province表的province_id对应

id是自增的 city_id为唯一

最后一个表类似与city表

jquery.js可以到下载

如果有问题可以在晚上7-10点 在H!给我留言

thinkphp的二级联动

html文件:

liandong.html

首先要引入jquery.js文件

html

title二级联动/title

head

script src="__PUBLIC__/scripts/jquery.js" type="text/javascript"/script

script type="text/javascript"

$(function(){

$('#AreaId').change(function(){

//获取父类的id

var $id=$('#AreaId').val();

//通过ajax进行传值

$.getJSON('__URL__/liandong',{id:$id},function(data){

//回调函数

if (data.status==1){

//首先清除子类中值不为空的,如果没有这句话你会发现子类的显示会这个增加,二不是你想要的结果

$('#ServerId option[value!=""]').remove();

//计算返回数组的数目,并循环显示

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

//定义html标签,和显示的值,id和type_name为数据库中的字段名

var option ="option value="+data.data[i].id+""+data.data[i].type_name+"/option";

//显示的位置

$(option).appendTo('#ServerId');

}

}

});

});

});

/script

/head

body

select id="AreaId" name="AreaId"

option selected="selected" value=""请选择游戏区/option

?php

//循环显示父类

foreach($plei as $val){

?

option value="{$val[id]}"{$val[type_name]}/option

?php

}

?

/select

select id="ServerId" name="ServerId"

option selected="selected" value=""请选择游戏服/option

/select

/body

/html

php文件

IndexAction.class.php

class IndexAction extends Action {

public function liandong(){

//实例化数据表

$type=M('Type');

//首先是查询类别表中的父类,我的是父类的pid都为0

$plei=$type-where('pid=0')-select();

//分配变量

$this-assign("plei",$plei);

//这个主要是判断父类的内容是否发生变化,此判断非常重要(ps:我那会没写这个判断,总是出错,非常头疼)

if($_GET[id]){

$sel=$type-where('pid='.$_GET[id])-select();

$this-ajaxReturn($sel,'子类',1);

}

$this-display();

}

}

如何用php写一个二级联动

JAVASCRIPT就可以写了 你把JAVASCRIPT追加到PHP代码里面就OK另外

具体 代码

head

script language="javascript" type="text/javascript"

var 后盾网=Array("后盾IT教育","后盾网php培训","朝阳","孙河");

var 后盾网=Array("php培训","IT教育");

var 其余地方=Array("国外","未知地址");

function change()

{

shengList=document.getElementById("sheng");

nIndex=shengList.selectedIndex;

cityList=document.getElementById("city");

switch(nIndex)

{

case 1:

doChange(cityList,北京);

break;

case 2:

doChange(cityList,朝阳);

break;

case 3:

doChange(cityList,其余地方);

break;

default:

cityList.options.length=1;

cityList.options[0].text="--请选择--";

break;

}

}

function doChange(myList,MyItem)

{

var iLength=MyItem.length;

myList.options.length=iLength;

for(var i=0;iiLength;i++)

{

myList.options[i].text=MyItem[i];

}

}

/script

/head

body

select name="sheng" onchange="change()"

option value="chooseSheng"请选择/option

option value="北京"朝阳/option

option value="后盾网"php培训/option

option value="其他地方"其他地方/option

/select

select name="city"option value="chooseCity" selected="selected"请选择/option/select/td

/body如果还有不懂的可以去后盾网论坛问题求助专区,他们可以帮到你更多,希望我的回答能帮到你!

如何实现PHPmvc框架里的二级联动

js代码

var currentShowCity=0;

$(document).ready(function(){

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

$("#province option").each(function(i,o){

if($(this).attr("selected"))

{

$(".city").hide();

$(".city").eq(i).show();

currentShowCity=i;

}

});

});

$("#province").change();

});

function getSelectValue(){

alert("1级="+$("#province").val());

$(".city").each(function(i,o){

if(i == currentShowCity){

alert("2级="+$(".city").eq(i).val());

}

});

}

html代码

select id="province"

option----请选择省份----/option

option北京/option

option上海/option

option江苏/option

/select

select class="city"

option----请选择城市----/option

/select

select class="city"

option东城/option

option西城/option

option崇文/option

option宣武/option

option朝阳/option

/select

select class="city"

option黄浦/option

option卢湾/option

option徐汇/option

option长宁/option

option静安/option

/select

select class="city"

option南京/option

option镇江/option

option苏州/option

option南通/option

option扬州/option

/select

数据库的东西比较大,php如何制作二级联动菜单,要求第一类选择后,第二个下拉框会跳变为第一类的内容

select 有 onchange 事件 ,触发 js 进行ajax 请求 , 然后返回 数据进行组合构成 select 元素。替换第二个select就行了

PHP二级联动下拉选中,从数据库读取数据,修改页面时如何才能选中数据库中的值呢?

function Opt_Sel($table,$id,$name,$postid){

$query=mysql_query("select * from $table");

while($row=mysql_fetch_array($query)){

$selected = $row[$id]==$postid ? "selected" : null;

echo "option value=\"$row[$id]\" $selected$row[$name]/option";

}

}

调用时把以下两句分别放在大小类中.

Opt_Sel('大类表名','大类字段id','大类字段name',你要修该的大类字段id值);

Opt_Sel('小类表名','小类字段id','小类字段name',你要修该的小类字段id值);


标题名称:php数据库省市二级联动,php省市区三级联动
文章源于:http://myzitong.com/article/dsgpdgi.html