绝对原创
测试地址: http://www.mlmm.cn/mypage/?name=ceshi
测试页代码:
复制代码 代码如下:
php+ajax动态生成下拉菜单
{$regionss(中华人民共和国)}
regionss 函数代码:
quote:
复制代码 代码如下:
//省市地3级联动下拉菜单函数 regionss 省.市.地
function regionss($country=中华人民共和国)
{
global $db; $i = 1;
$text=省/市/自治区\n;
$result = $db->query(select province from .table_province. where country='$country' order by provinceid);
while($r = $db->fetch_array($result))
{
$text .= .$r['province']. ;
$i++;
}
$text.=;
$text.= 市/县/区\n;
$text.=县级市/县\n;
return $text;
}
regions.js 的代码:
复制代码 代码如下:
//var ab = new array();
var xmlhttp;
var xmlhttpa;
function createxmlhttprequest() {
if (window.activexobject) {
xmlhttp = new activexobject(microsoft.xmlhttp);
}
else if (window.xmlhttprequest) {
xmlhttp = new xmlhttprequest();
}
}
function createxmlhttprequesta() {
if (window.activexobject) {
xmlhttpa = new activexobject(microsoft.xmlhttp);
}
else if (window.xmlhttprequest) {
xmlhttpa = new xmlhttprequest();
}
}
function startrequest() {
createxmlhttprequest();
createxmlhttprequesta();
xmlhttp.onreadystatechange = handlestatechange;
xmlhttpa.onreadystatechange = handlestatechangearea;
document.getelementbyid('select2').options.length = 0;
document.getelementbyid('select3').options.length = 0;
var url = document.form1.select1.value;
var qurl = /regions.php?province=+url+&time=+new date().gettime();
xmlhttp.open(get, qurl, true);
xmlhttp.send(null);
//settimeout(startrequest(),2000);
}
function handlestatechange() {
if(xmlhttp.readystate == 4) {
if(xmlhttp.status == 200) {
var obj = document.getelementbyid('select2'); //将服务器返回的字符串写到页面中id为select2的区域
obja = document.getelementbyid('select3'); //将服务器返回的字符串写到页面中id为select3的区域
eval(xmlhttp.responsetext);
}
}
}
function handlestatechangearea() {
eval(xmlhttpa.responsetext);
}
//var ab = new array();
function startrequesta() {
createxmlhttprequesta();
xmlhttpa.onreadystatechange = handlestatechangea;
document.getelementbyid('select3').options.length = 0;
var url = document.form1.select2.value;
var qurl = /regions.php?city=+url+&time=+new date().gettime();
xmlhttpa.open(get, qurl, true);
xmlhttpa.send(null);
//settimeout(startrequest(),2000);
}
function handlestatechangea() {
if(xmlhttpa.readystate == 4) {
if(xmlhttpa.status == 200) {
var obja = document.getelementbyid('select3');
eval(xmlhttpa.responsetext);
//将服务器返回的字符串写到页面中id为select3的区域
}
}
}
数据岛 regions.php 页面代码
复制代码 代码如下:
query(select distinct city from .table_city. where province='$province' order by cityid);
while($r = $db->fetch_array($result))
{
$r[city]=iconv('gb2312','utf-8',$r[city]);
echo obj.options[obj.options.length] = new option('.$r[city].','.$r[city].');\n;
$i++;
}
$resultarea = $db->query(select distinct city from .table_city. where province='$province' order by cityid);
$r = $db->fetch_array($resultarea);
$city = $r[city];
$resulta = $db->query(select distinct area from .table_city. where city='$city' order by cityid);
while($ra = $db->fetch_array($resulta))
{
$ra[area]=iconv('gb2312','utf-8',$ra[area]);
echo obja.options[obja.options.length] = new option('.$ra[area].','.$ra[area].');\n;
$i++;
}
}
if($city && $province==''){
global $db; $i = 1;
$result = $db->query(select distinct area from .table_city. where city='$city' order by cityid);
while($r = $db->fetch_array($result))
{
$r[area]=iconv('gb2312','utf-8',$r[area]);
echo obja.options[obja.options.length] = new option('.$r[area].','.$r[area].');\n;
$i++;
}
}
?>
地址信息数据库:
采用的是phpcms3.0里自带的数据库,我没有进行任何改动
本程序可以在phpcms3.0里直接使用,若在其他地方使用请自己修改
http://www.bkjia.com/phpjc/317597.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/317597.htmltecharticle绝对原创 测试地址:http://www.mlmm.cn/mypage/?name=ceshi 测试页代码: 复制代码 代码如下: html head metahttp-equiv=content-typecontent=text/html;charset=gb2...