php开发中,想自己写一个mysql+ajax的省市县三级联动,一切都写好了,就等着返回xml或者json格式的数据了。
查询是:$sql="select * from cities where sid=1";//1为江苏省的id.这个不用多说了
$res=mysql_query($sql);
下面如何处理,用while循环还是怎么弄呢?我要的xml格式类似于
南京苏州
转自别人的问答,。。。
1.[代码][PHP]代码
在发一次包括数据库在内的代码以示感谢!!!
php页面:
//这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式
header("Content-Type: text/html;charset=utf-8");
//告诉浏览器不要缓存数据
header("Cache-Control: no-cache");
$conn=mysql_connect("localhost","root","123");
mysql_select_db("ajax");
mysql_query("set names utf8");
if(isset($_POST['sid'])){
$sid=$_POST['sid'];
//file_put_contents("D:/a.txt",$sid);
$sql_shi="select shi from shi where sid=$sid";
$res_shi=mysql_query($sql_shi);
$arr="";
while($row=mysql_fetch_array($res_shi)){
$arr[]=$row;
}
$a=json_encode($arr);
echo '{"aa":'.$a.'}';
}
?>
js页面:
//创建xmlHttpRequest对象
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
var xhr="";
function checkCity(){
xhr=GetXmlHttpObject();
if(xhr){
var url="/ajax/citiesProcess.php";
var data="sid="+$("sheng").value;
xhr.open("post",url,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.onreadystatechange=chuli;
xhr.send(data);
}
}
function $(id){
return document.getElementById(id);
}
function chuli(){
if(xhr.readyState==4 && xhr.status==200){
var result=xhr.responseText;
//window.alert(result);
var message=eval("("+result+")");
$("city").length=0;
myoption=document.createElement("option");
myoption.innerText="--市--";
$("city").appendChild(myoption);
for(var i=0;i
var shi_name=message.aa[i].shi;
myoption=document.createElement("option");
myoption.value=shi_name;
myoption.innerText=shi_name;
$("city").appendChild(myoption);
}
//window.alert(message.aa[].length);
}
}
html页面:
---省---
--市--
--县--