用Ajax写的省市联动,修改时如何显示地址里已有的省和市

WBOY
发布: 2016-06-23 13:44:07
原创
1206 人浏览过

用Ajax写的省市联动,添加地址的时候默认的省市都显示,- -请选择- - 但是修改的时候如何让省市下拉菜单里默认的选中,地址里的省市?[下拉菜单里的省,是直接从数据库拿出来保存在一个数组变量里,把变量付给下拉框]


js代码:
<script> <br /> //创建Ajax引擎对象 <br /> function getXmlHttpObject(){ <br /> var xmlHttpRequest; <br /> if(window.ActiveXObject){ <br /> xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); <br /> }else{ <br /> xmlHttpRequest=new XMLHttpRequest(); <br /> } <br /> return xmlHttpRequest; <br /> } <br /> <br /> var myXmlHttpRequest=""; <br /> <br /> <br /> <br /> function getCities(){ <br /> <br /> myXmlHttpRequest=getXmlHttpObject(); <br /> <br /> if(myXmlHttpRequest){ <br /> <br /> var url="../plus/showcity.php";//post <br /> <br /> var data="province="+$("sheng").value; <br /> <br /> myXmlHttpRequest.open("post",url,true); <br /> <br /> myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); <br /> <br /> myXmlHttpRequest.onreadystatechange=chuli; <br /> <br /> myXmlHttpRequest.send(data); <br /> <br /> <br /> } <br /> } <br /> <br /> function chuli(){ <br /> <br /> if(myXmlHttpRequest.readyState==4){ <br /> <br /> if(myXmlHttpRequest.status==200){ <br /> //取出服务器回送的数据 <br /> //window.alert(myXmlHttpRequest.responseXML); <br /> var cities=myXmlHttpRequest.responseXML.getElementsByTagName("city"); <br /> //alert(cities.length); <br /> //遍历并取出城市 <br /> $("city").length=0; <br /> var myOption=document.createElement("option"); <br /> myOption.innerHTML="--请选择--"; <br /> $("city").appendChild(myOption); <br /> <br /> for(var i=0;i<cities.length;i++){ <br /> var city_name=cities[i].childNodes[0].nodeValue; <br /> //alert(city_name); <br /> var myOption=document.createElement("option"); <br /> myOption.value=city_name; <br /> myOption.innerHTML=city_name; <br /> $("city").appendChild(myOption); <br /> } <br /> } <br /> } <br /> } <br /> <br /> function $(id){ <br /> <br /> return document.getElementById(id); <br /> } <br /> </script>

html代码:

 


            

            
            

            

            
            

            

            
   
   
            

            

            
            

            

            
            

            

             是   否
            

        
            


        


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="";
$len=count($city);
for($l=0;$l    //file_put_contents("e:/aa.txt",$city[$l][name],FILE_APPEND);
    $info.="".$city[$l][name]."";  
}
$info.="
";
file_put_contents("e:/aa.txt",$info,FILE_APPEND);
echo $info;


回复讨论(解决方案)

选中 省 ajax 取得 市 列表
并不需要再修改 省 列表了

怎么选中省呢??

那我就奇怪了,你不是 省市联动 吗?
选中省 当然是用户的事情啦

Ajax实现数据库填充省市下拉框联动菜单示例
//Ajax和DropDownList设置
 
    

  
                        
                                                             onselectedindexchanged="dlSheng_SelectedIndexChanged">
                            
                                                
                            

                        

                    

//调用数据库显示下拉框数据
SqlConnection sqlcon;
    string strCon = ConfigurationManager.AppSettings["conn"];
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            sqlcon = new SqlConnection(strCon);
            string sqlstr = "select tbSheng from tb_Sheng";
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds);
            dltbSheng.DataSource= myds;
            dltbSheng.DataValueField = "tbSheng";
            dltbSheng.DataBind();
            string strtb_Shi = "select * from dl_Shi where tbSheng='" + dltbSheng.SelectedItem.Text + "'";
            SqlDataAdapter mydaShi = new SqlDataAdapter(strtb_Shi, sqlcon);
            DataSet mydsShi = new DataSet();
            mydaShi.Fill(mydsShi);
            ddlShi.DataSource = mydsShi;
            ddlShi.DataValueField = "tb_Shi";
            ddlShi.DataBind();
            sqlcon.Close();
        }

    }
    protected void dlSheng_SelectedIndexChanged(object sender, EventArgs e)
    {
        sqlcon = new SqlConnection(strCon);
        string sqlstr = "select * from dl_Shi where tbSheng='" + dltbSheng.SelectedItem.Text+ "'";
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        sqlcon.Open();
        myda.Fill(myds);
        ddlShi.DataSource = myds;
        ddlShi.DataValueField = "tb_Shi";
        ddlShi.DataBind();
        sqlcon.Close();
    }

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板