導航:首頁 > 編程語言 > 聯動菜單ajaxphp

聯動菜單ajaxphp

發布時間:2023-03-19 05:08:22

php聯動效果

1。如果數據量很大需要用ajax,就是在每次change時發送請求道伺服器,返回數據
這種方法網上有很多,搜三級聯動菜單就可以
2.如果數據量不大,可以一次讀到放到靜態html文件里邊用js實現
例子:簡單的方法,描述如下
讀取資料庫students :欄位studentid ,studentname,studentgroup
<select name="type_sel" id="type_sel" onchange="document.getElementById('test_t').innerHTML=this.begin;">
<option value="學生id1" begin='學生姓名1'>學生1</option>
<option value="學生id2" begin='學生姓名2'>學生2</option>
</select>
<div id='test_t'></div>

⑵ AJAX 動態二級下拉聯動菜單 給個實例吧!ASP 或者PHP 都可以

<script language = "javaScript">
sall=new Array();
<%
Dim i
i=0
set rs=server.createobject("adodb.recordset")
sql="select * from N_smallclass order by ID desc"
rs.open sql,conn,1,1
do while not rs.eof
%>
sall[<%=i%>]=new Array("<%=rs("smallclassname")%>","<%=rs("N_ClassID")%>","<%=rs("ID")%>");
<%
i=i+1
rs.movenext
loop
rs.close
set rs=nothing
%>
function changelocation(locationid)
{
document.form1.smallclassid.length = 0;

var locationid=locationid;
var i;
for (i=0;i <sall.length; i++)
{
if (sall[i][1] == locationid)
{
document.form1.smallclassid.options[document.form1.smallclassid.length] = new Option(sall[i][0], sall[i][2]);
}

}

}
</script>
<tr>
<td height="30" align="right" bgcolor="#FFFFFF" class="fontblankB">產品類別:</td>
<td bgcolor="#FFFFFF"> <%
Set classrs = conn.Execute("select * from N_Class order by classid desc")
if classrs.eof and classrs.bof then
response.write "<script language='javascript'>"
response.write "alert('還未添加產品分類,請先添加產品分類!');"
response.write "location.href='N_admin_proct.asp';"
response.write "</script>"
response.End()
end if
%>
<select name="classid" class="inputclass" id="classid" style="width:150px;height:20px" onchange="changelocation(document.form1.classid.options[document.form1.classid.selectedIndex].value)">
<%do while not classrs.eof
selectstr=""
if action="mod" then
if classrs("classid")=Newsmodrs("classid") then
selectstr="selected"
end if
end if
%>
<option value="<%=classrs("classid")%>" <%=selectstr%>><%=classrs("N_classname")%></option>
<%
classrs.movenext
loop
%>
</select>
<%
classrs.close
set classrs=nothing
%>
<select name="smallclassid" class="inputclass" id="smallclassid" style="width:150px;height:20px">
<%
if action="mod" Then
response.write Trim(Newsmodrs("smallclassid"))&"--"
set Newsmodrs4=conn.execute("select * from N_smallclass where id="&Trim(Newsmodrs("smallclassid"))&"")
if Not Newsmodrs4.eof And Not Newsmodrs4.bof Then
smallclassname=Newsmodrs4("smallclassname")

%>
<option value="<%=Newsmodrs("smallclassid")%>" selected><%=smallclassname%></option>
<%
End If
Newsmodrs4.close
Set Newsmodrs4=nothing
end if
%>
</select>
</td>
</tr>

⑶ PHP 文本框和下拉菜單聯動

可以不用ajax,用javascript實現,但缺點是如果信息需要及時性
那麼就不裂銷擾行了(就是在你級聯時,資料庫的信息更新了,那樣ajax可以直肆旦接讀新數據,但純粹的javascript就只是級聯的當前頁面的數組內容)

1.在當前頁面載入時 把下拉框的內容保存在javascript的數組里

2.再寫下拉框斗團的級聯,也是javascript可以實現

3.把最後確定的信息 賦值給文本框 javascript可以實現

上面的東西我用過 絕對可以 只是代碼有點復雜

⑷ php ajax關於省市聯動


$('option','#area').reomove();
$.each(data,function(index,ary){
$('#area').append("<沒談虛optionvalue='"+ary['id']+"'>枯燃"+ary['countyName']+"<侍賀/option>");
});

放在你的ajax方法里。

⑸ 關於php+mysql+ajax省市區三級聯動菜單,求幫助

先前鉛檔台輸出所有省,然後選擇省的執行js方法,獲取用戶選擇的省的id,然森斗後通過ajax傳遞到後台,獲取該省下的所槐春亂有市。區同理

⑹ 關於php+mysql+ajax省市區三級聯動菜單,求幫助

基本思想就是:在JS動態創建select控制項的option,通過Ajax獲取在PHP從SQL資料庫獲取的省市區信息,代碼有點長,但很多都是類似的,例如JS中省、市、區獲取方法類似,PHP中通過參數不同執行不同的select語句。

index.html代碼:

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>省市區三級聯動</title>
<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">
<scriptsrc="scripts/thumbnails.js"type="text/javascript"></script>
</head>

thumbnails.js代碼:

window.onload=getProvince;


functioncreateRequest(){//Ajax於PHP交互需要對象

try{

request=newXMLHttpRequest();//創建一個新的請求對象;

}catch(tryMS){

try{

request=newActiveXObject("Msxml2.XMLHTTP");

}catch(otherMS){

try{

request=newActiveXObject("Microsoft.XMLHTTP");

}catch(failed){

request=null;

}

}

}

returnrequest;

}


functionsech(id){//省市改變時觸發,select的onchange事件


varaa=document.getElementById(id);

if(id=="sheng"){

getCity(aa.value);//這里aa.value為省的id

}

if(id=="shi")

{

getCounty(aa.value);//這里aa.value為市的id

}


}


functiongetProvince(){//獲取所有省

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID=0";//ID=0時傳遞至PHP時讓其獲取所有省

request.open("GET",url,true);

request.onreadystatechange=displayProvince;//設置回調函數

request.send(null);//發送請求

}


functiongetCity(id){//獲取省對應的市

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID="+escape(id);

request.open("GET",url,true);

request.onreadystatechange=displayCity;

request.send(null);

}


functiongetCounty(id){//獲取市對應的區

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID="+escape(id);

request.open("GET",url,true);

request.onreadystatechange=displayCounty;

request.send(null);

}
functiondisplayProvince(){//將獲取的數據動態增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;//將PHP返回的數據賦值給b

a=b.split(",");//通過","將這一數據保存在數組a中

document.getElementById("sheng").length=1;

varobj=document.getElementById("sheng');

for(i=0;i

obj.options.add(newOption(a[i],i+1));//動態生成OPTION加到select中,第一個參數為Text,第二個參數為Value值.


}

}

}
functiondisplayCity(){//將獲取的數據動態增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;

a=b.split(",");

document.getElementById("shi").length=1;//重新選擇

document.getElementById("xian").length=1;//重新選擇

if(document.getElementById("sheng").value!="province"){

varobj=document.getElementById('shi');

for(i=0;i

obj.options.add(newOption(a[i],document.getElementById("sheng").value*100+i+1));//ocument.getElementById("sheng").value*100+i+1對應的是市的ID。

}


}

}

}


functiondisplayCounty(){//將獲取的數據增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;

a=b.split(",");

document.getElementById("xian").length=1;

if(document.getElementById("sheng").value!="province"&&document.getElementById("shi").value!="city"){

varobj=document.getElementById('xian');

for(i=0;i

obj.options.add(newOption(a[i],i+1001));

}


}

}

}

getDetails.php代碼:

<?php

header("Content-Type:text/html;charset=gb2312");

$conn=newCOM("ADODB.Connection")ordie("CannotstartADO");

$connstr="Provider=SQLOLEDB;PersistSecurityInfo=False;UserID=root;Password=123456;InitialCatalog=area;DataSource=localhost";

if($_REQUEST['ID']==0){//獲得省列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromProvince";//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$Province=array();
$i=0;
while(!$rs->EOF){
$Province[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Provinceas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>0&&$_REQUEST['ID']<35){//獲得省對應的市列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromCitywherecid=".$_REQUEST['ID'];//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$City=array();
$i=0;
while(!$rs->EOF){
$City[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Cityas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>100){//獲得省市對應的縣列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromCountywherecid=".$_REQUEST['ID'];//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$County=array();
$i=0;
while(!$rs->EOF){
$County[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Countyas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
?>

資料庫設計,表格Province表,City表,County表。
要求:Province表需要id和name,id建議從1至34,例如北京id為1,廣東id為2,以此類推;
City表需要id,name和cid,id為cid*100+1,cid為該市的上級,例如深圳的上級為廣東省,cid為2的話,深圳的id就是201,以此類推。
County表需要id,name和cid,因為是三級的關系,id可以隨意,建議從10001開始自增。cid為所在上級,例如寶安區的cid為201,龍崗區的cid也為201;

截圖:

HTML效果:

⑺ 如何在PHP中使用ajax做一個級聯菜單

可以的。。比較簡單。。如果棗悔前者動態內鏈岩搏容知道的話,由前者提交數據給後台從後台將該面所對棚祥應的數據傳到js中
由js來處理後者下拉框的內容!傳值一般xml
或者json數據
我建議使用json數據最好!

⑻ 想問下thinkphp通過ajax如何實現二級聯動

引入jquery來幫助你實現.比較簡單.給你一個例子吧.後台是派攔謹用PHP寫的.html文件內容demo請選擇東北華北=============b.php內塵基容遼寧吉寧黑龍江";echo$area_option;break;}case2:{$area_option="北京天衡野津河北";echo$area_option;break;}}?>

閱讀全文

與聯動菜單ajaxphp相關的資料

熱點內容
數控銑床編程簡單數字 瀏覽:786
編程電纜如何重啟 瀏覽:121
myqq命令行發消息 瀏覽:365
日產逍客怎麼使用app升窗 瀏覽:503
安卓系統怎麼快速刪除微信內容 瀏覽:653
csharppython 瀏覽:409
程序員脖子按摩儀 瀏覽:562
小米桌面文件夾亂碼怎麼回事 瀏覽:858
點歌台app怎麼連接 瀏覽:318
大學電腦編程學什麼好 瀏覽:348
上哪裡取消應用加密 瀏覽:172
電氣控制與可編程式控制制器pdf 瀏覽:87
cad圖紙不能跨文件夾粘貼 瀏覽:256
學生雲伺服器主機 瀏覽:889
單片機狀態周期 瀏覽:622
lua中的android 瀏覽:443
加密貴還是植發貴 瀏覽:664
陽光壓縮機繼電器 瀏覽:971
修改阿里雲伺服器密碼 瀏覽:817
lk4102加密晶元 瀏覽:588