二級聯動php
Ⅰ 如何用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;i<iLength;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>如果還有不懂的可以去後盾網論壇問題求助專區,他們可以幫到你更多,希望我的回答能幫到你!
Ⅱ 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">
<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 (selected&&list.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可以到http://jquery.com/下載
如果有問題可以在晚上7-10點 在H!給我留言
Ⅲ 如何用PHP實現select二級聯動,根據第一個下拉框選擇的內容來選擇第二個下拉框的內容
給第一個select加js事件,點擊它的時候動態載入第二個select的內容,比如寫個ajax獲取第一個select的value(這個value是哪個quanx_id),然後去後台請求,後無論是用緩存還是說直接從資料庫中查,得到這個value對應的field,再返回數據到前台進行處理。也可以在頁面載入的時候就直接吧每個quanx_id的對應關系全部查找並在模板中的js用相應變數存儲後,再採用上面的思路去動態載入就是了。反正最終都是當select1的value發生變化,動態載入select2的value.