用Ajax写的省市联动,修改时如何显示地址里已有的省和市
用Ajax写的省市联动,添加地址的时候默认的省市都显示,- -请选择- - 但是修改的时候如何让省市下拉菜单里默认的选中,地址里的省市?[下拉菜单里的省,是直接从数据库拿出来保存在一个数组变量里,把变量付给下拉框]
js代码:
<script type="text/javascript">
//创建Ajax引擎对象
function getXmlHttpObject(){
var xmlHttpRequest;
if(window.ActiveXObject){
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttpRequest=new XMLHttpRequest();
}
return xmlHttpRequest;
}
var myXmlHttpRequest="";
function getCities(){
myXmlHttpRequest=getXmlHttpObject();
if(myXmlHttpRequest){
var url="../plus/showcity.php";//post
var data="province="+$("sheng").value;
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=chuli;
myXmlHttpRequest.send(data);
}
}
function chuli(){
if(myXmlHttpRequest.readyState==4){
if(myXmlHttpRequest.status==200){
//取出服务器回送的数据
//window.alert(myXmlHttpRequest.responseXML);
var cities=myXmlHttpRequest.responseXML.getElementsByTagName("city");
//alert(cities.length);
//遍历并取出城市
$("city").length=0;
var myOption=document.createElement("option");
myOption.innerHTML="--请选择--";
$("city").appendChild(myOption);
for(var i=0;i<cities.length;i++){
var city_name=cities[i].childNodes[0].nodeValue;
//alert(city_name);
var myOption=document.createElement("option");
myOption.value=city_name;
myOption.innerHTML=city_name;
$("city").appendChild(myOption);
}
}
}
}
function $(id){
return document.getElementById(id);
}
</script>
html代码:
<form class="box_form" action="address.php" method="post">
<fieldset>
<label>收件人:</label><input type="text" id="sjr" name="truename" onFocus="document.getElementById('sjr').className='mystyle'" onBlur="document.getElementById('sjr').className='mystyle2'" value="{dede:var.rows.truename/}"/>
</fieldset>
<fieldset>
<label>手机:</label><input type="text" id="sj" name="phone" onFocus="document.getElementById('sj').className='mystyle'" onBlur="document.getElementById('sj').className='mystyle2'" value="{dede:var.rows.phone/}"/>
</fieldset>
<fieldset>
<label>所在地:</label>
<select name="province" id="sheng" onchange="getCities()">
<option value="">--请选择--</option>
{dede:array.province}
<option value="{dede:value.id/}">{dede:value.name/}</option>
{/dede:array}
</select>
<select name="city" id="city">
<option value="">--请选择--</option>
</select>
</fieldset>
<fieldset>
<label>详细地址:</label><input type="text" id="xxdz" name="address" onFocus="document.getElementById('xxdz').className='mystyle'" onBlur="document.getElementById('xxdz').className='mystyle2'" value="{dede:var.rows.address/}"/>
</fieldset>
<fieldset>
<label>邮编:</label><input type="text" id="yb" name="zipcode" onFocus="document.getElementById('yb').className='mystyle'" onBlur="document.getElementById('yb').className='mystyle2'" value="{dede:var.rows.zip/}"/>
</fieldset>
<fieldset>
<label>设置为默认:</label><input type="radio" name="selected" value="1" checked="checked"/> 是 <input type="radio" name="sz"/> 否
</fieldset>
<p class="form_btn"><input type="submit" value="保存" id="restore" onclick="check();"/><input type="reset" value="取消" id="can" /></p>
</form>
php文件:
<?php
require_once (dirname(__FILE__) . "/../include/common.inc.php");
require_once(DEDEINC.'/dedesql.class.php');
//服务器端
//告诉浏览器返回的数据格式是xml格式
header("Content-Type: text/xml;charset=utf-8");
//告诉浏览器不要缓存数据
header("Cache-Control: no-cache");
//接收用户选择省的名字
$province=$_POST['province'];
$city = array();
$dsql->SetQuery("SELECT * FROM area WHERE reid=$province");
$dsql->Execute();
$i = 0 ;
while($row=$dsql->GetArray())
{
$city[] = $row;
$i++;
}
unset($row);
$info="<province>";
$len=count($city);
for($l=0;$l<$len;$l++){
//file_put_contents("e:/aa.txt",$city[$l][name],FILE_APPEND);
$info.="<city>".$city[$l][name]."</city>";
}
$info.="</province>";
file_put_contents("e:/aa.txt",$info,FILE_APPEND);
echo $info;