当前位置:首页 » 编程语言 » php城市联动

php城市联动

发布时间: 2023-03-21 05:26:30

A. php 省市联动如何提交表格JS选择了没有提交,谢谢

你发货扒耐地址 标签里值 和 下面 【 德阳市 什邡市 师古镇 】 没有连接上了 。。 post取得时候下面的值 不谈此衫是你选的 select标签里的值
用js联动 这两个 或含腔者 直接post select标签里的值就行

B. php ajax关于省市联动


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

放在你的ajax方法里。

C. 关于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效果:

D. PHP如何做一个选择城市三级联动后 跳转到相应匹配内容,类似饿了么网页主页一样:https://www.ele.me/home/

城市选择后,应该就会按照你的城市进行检索出,你对应地方的商家吧

E. phpcms的地区联动 怎么实现

这样试试呢,在数据模型中创建自定义字段(可参考iphpcms的教程)时字段类型设置为“联动菜单”,然后在“菜单id”选项处通过联动菜单列表选择你的地区联动菜单,并可设定联动菜单的返回值的方式。然后在内容添加编辑界面可出现此联动菜单项,此方法常用。

二、在phpcms模板中直接调用联动菜单,此方法不常用。具体方法是来到后台-扩展-联动菜单列表,你会看到每一个联动菜单都有一个调用代码,将此代码复制粘贴到你想放的模板位置即可。但根据经验,这还不够,因为虽然通过此代码把联动菜单掉出来了,但是因为缺乏此带单显示时的css、js文件,往往显示不正常,所以需要保证你的模板里同时引入了statics/js/dialog.js、statics/js/linkage/js/pop.js、statics/css/dialog.css等文件。需要对phpcms有一定了解。如果不行的话你可以直接去后盾人线下面授培训问问那些专家讲师,他们很乐意帮你的,希望能帮到你,给个采纳吧谢谢( ⌒㉨⌒)人(⌒㉨⌒ )v

F. php在一张表里怎么写省市区联动

我没看懂你具体想干什么。。。
我做过省市县分级联动下拉菜单,不知道是不是你想要的。。。

G. php 省市县 三级联动菜单 问题请教广大网友

<?php
/***
根据省的id 选择对应的城市
****/
$id = $_GET["id"];
$link = mysql_connect("localhost","root","root");
mysql_query("set names utf8");
mysql_select_db("hello",$link);
$sql = "select * from areas where pid={$id}";
$result = mysql_query($sql);
?>
<option value="-1">请选择市</option>
<?php
while($rs = mysql_fetch_assoc($result)){
?>
<衫兆option value="<?php echo $rs["id"]?>"><?php echo $rs["name"]?></option>
<?php
}
?>

拼接的页面大致这掘激样

$("#pro").change(function(){
//$tcId=$(this).val();
$.ajax({
type:"GET",
url:"city.php?random="+Math.random()+"&tcId="+$(this).val(),
dataType:"html",
success:function(data){
$("#city").html(data);
}
})
}) 我的jquery是这样写的 你看看吧,应该都差不多的 检查下拼接的判塌袜输出

H. 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!给我留言

I. php网页,搜索框怎么加入城市的选项目前只有省份的,如何添加城市产生联动

你这 是通过 后台取数据的,关改 上面的代码是没有用的,省市联动一般有两种做法。第一种,下载一个js的省 市联动的插件,调用插件就可以,第二种,就是存在数据库里,然后前端当省框的值改变 的时候就ajax去后台取出该省的所有市在市框中列出来,然后再市框的值改变的时候,再后台去取出该市所有的县区在前端列出来。现在大部份是用第一种做法比较好,下个插件吧

J. 怎么用php读取数据库方式动态生成省市县三级联动选择框

需要使用到ajax。到网上查下,一堆。代码是固定的。
数据库设置
id,area,areaname
1 210000 辽宁省
2 210100 沈阳市
3 210104 大东区

<select name='area1' id='area1' onchange="get_area2(this.value);">
这里读取省的数据
$sql="select area,areaname from area where right(area,4)='0000'";
</select>
<select name='area2' id='area2 'onchange="get_area(this.value);">
这里根据ajax读取数据,开始的时候是空的
</select>
<select name='area' id='area'>
这里根据ajax读取数据,开始的时候是空的
</select>

方法:
1,首先写get_area2 的js 代码,这里就用到ajax读取,这里获取的数据是区域代码的前两位代码(比如:21)
这个在根据这个21的参数,读取表中相关的市,
$sql="select area,areaname from area where left(area,2)='21' and right(area,2)='00'";
这个语句读取出来21的市代码

2,同一读取出来区的代码

热点内容
林肯冒险家怎么查看配置 发布:2024-11-05 15:55:12 浏览:112
可以上传球球的照片 发布:2024-11-05 15:42:59 浏览:738
拉箱怎么改密码 发布:2024-11-05 15:38:02 浏览:862
http怎么配置 发布:2024-11-05 15:02:45 浏览:461
12级缓存 发布:2024-11-05 14:52:09 浏览:578
神武4脚本 发布:2024-11-05 14:48:50 浏览:702
王者荣耀反复解压 发布:2024-11-05 14:31:58 浏览:853
存储引擎有哪些品牌 发布:2024-11-05 14:25:59 浏览:39
红薯的存储方法 发布:2024-11-05 14:17:32 浏览:757
脚本错误弹窗口在哪里 发布:2024-11-05 14:01:16 浏览:967