ajax的省市联动案例

如果我们的代码比较复杂,可以通过file_put_contents来输出信息到某个日志。

在一个元素中添加另一个元素使用的方法是:appendChild()。

函数appendChild()写错是有问题的。不要写错appendChlid()了。

showCities.php

<html>
<head>
<meta http-equiv="content-type"content="text/html;charset=utf-8"/>
<script language="javascript" type="text/javascript"> //创建ajax引擎
function getXmlHttpObject(){
var xmlHttpRequest;
if(window.ActiveObject){
xmlHttpRequest=new ActiveObject("Microsoft.XMLHTTP");
}else{
xmlHttpRequest=new XMLHttpRequest();
}
return xmlHttpRequest;
} var myXmlHttpRequest="";
function getCities(){
myXmlHttpRequest=getXmlHttpObject(); if(myXmlHttpRequest){ var url="/showCitiesPro.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){
//取出服务器回送的数据 var cities=myXmlHttpRequest.responseXML.getElementsByTagName("city"); //解决方案是添加如下代码
$("city").length=0;
//犯错:$("city").length=0;写出$("city").lenth=0;
var myOption=document.createElement("option");
myOption.innerText="--城市--";
//添加到
$("city").appendChild(myOption);
//解决方案
//遍历并取出城市
for(var i=0;i<cities.length;i++){
//这里出现了一个问题,每次点击省份,市的下拉列表中的内容会不断增加(重复),这是因为没有刷新,解决方案:将 var city_name=cities[i].childNodes[0].nodeValue;
//window.alert(city_name);
//创建新的元素option
var myOption=document.createElement("option");
myOption.value=city_name;
myOption.innerText=city_name;
//添加到
$("city").appendChild(myOption);
//在一个元素中添加另一个元素使用appendChild(); }
}
} } function $(id){
return document.getElementById(id);
}
</script>
</head>
<body>
<select id="sheng" onchange="getCities();">
<option value="">----省----</option>
<option value="zhejiang">浙江</option>
<option value="jiangsu">江苏</option>
</select>
<select id="city">
<option value="">--城市--</option>
</select> <select id="county">
<option value="">--县城--</option>
</select>
</select>
</body>
</html>

showCitiesPro.php

<?php

    //服务器端

    //这里两句话很重要,第一句话告诉浏览器返回的数据是xml格式
header("content-Type:text/xml;charset=utf-8");
//告诉浏览器不要缓存数据
header("Cache-Control:no-cache"); //接收用户的选择的省的名字
$province=$_POST['province']; //ajax调试很困难
//如何在调试过程中,看到接收到的数据。 file_put_contents("D:/install/wamp/www/mylog.log",$province."\r\n",FILE_APPEND);
//如何在调试过程中,看到接收的数据
//到数据库去查询省有哪些城市(现在先不到数据库中。)
$info="";
if($province=="zhejiang"){ $info="<province><city>杭州</city><city>温州</city><city>宁波</city></province>";
}else if($province=="jiangsu"){
$info="<province><city>南京</city><city>徐州</city><city>苏州</city></province>";
} echo $info; ?>

ajax经典案例--省市联动的更多相关文章

  1. js ajax 经典案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. AJAX案例四:省市联动

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  3. AJAX应用案例之省市联动

    jsp 主要是要注意多Document的操作 <%-- Created by IntelliJ IDEA. User: YuWenHui Date: 2017/4/23 0023 Time: 1 ...

  4. Ajax省市联动

    以JQuery为JS,写的Ajax省市联动. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  5. html + ashx 实现Ajax省市联动

    基本思路:1.了解数据库中省和市的表结构及关联主键 2.创建html页面及select标签 3.通过ajax向ashx(一般处理程序)发送后台请求完成联动效果 表结构: 这里,开始创建一个命为demo ...

  6. ajax做省市联动

    原理: 当select.jsp页面打开时,向服务器发送异步请求,得到所有省份的名称(文本数据).然后使用每个省份名称创建<option>,添加到<select name=”provi ...

  7. 练习: 省市联动(Ajax)

    // 示例一: china.xml (位于 src 目录下) <?xml version="1.0" encoding="utf-8"?> < ...

  8. JS 省市联动 ajax

    省市联动 //省市联动     $('.locationCode').change(function () {         var val = $(this).val();         if ...

  9. Django(二十)下拉列表-省市联动实例:jquery的ajax处理前端

    一.知识点 1.jquery的ajax请求写法 <script src="/static/js/jquery-1.12.4.min.js"></script> ...

随机推荐

  1. hibernate双向一对多映射

    双向多对一 :Customer类------------>一的一端   Order类----------->多的一端 Customer类:(省略set().get()和构造方法) priv ...

  2. UVA 10131题解

    第一次写动态规划的代码,整了一天,终于AC. 题目: Question 1: Is Bigger Smarter? The Problem Some people think that the big ...

  3. 多媒体开发之视频格式---1080p逐行和1080i隔行

    (1)简介 (2)1080p和1080i的区别 (3) ------------------autho:pkf ----------------------time:2015-1-4 (1)简介 (2 ...

  4. 小贝_php+redis简单实例

    php+redis简单实例 一.说明 因为redis是c/s架构.从这个角度上.不论什么符合redis的client要求的.都能够与redis进行通讯.官方提供了非常多的client. php在web ...

  5. 关于reset.css的那些事

    分析过程:body: 发现在没有填写任何内容的情况下是没有margin 的  只有在加入了文字或者div中以后才有了margin(废话)那么 我想问一下 body的padding 默认的有吗??在哪里 ...

  6. django定时任务python调度框架APScheduler使用详解

    # coding=utf-8 2 """ 3 Demonstrates how to use the background scheduler to schedule a ...

  7. 做完task1-21的阶段总结

    [说明]这是自注册修真院的第七天,也是第七篇日报,觉得是一个好的时机总结一下. 因为任务一虽然看起来仅仅是“完成学员报名的DB设计并读写数据库”,但是做了几天之后就发现在任务“搭建自己的服务器”之前的 ...

  8. intellij idea pycharm phpstorm webstorm 这些编辑器像 sublime text 一样使用 ctrl d 来操作光标多选。

    在Windows 和 Linux 快捷键是 Alt+J,在 Mac OS X 系统下快捷键是 Ctrl+G . 参考 https://blog.jetbrains.com/phpstorm/2014/ ...

  9. EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (二)公网直播的实现

    接上回(https://blog.csdn.net/xiejiashu/article/details/81276870),我们实现内网直播,可以实现直播的web观看,该篇博文我们将实现公网的直播. ...

  10. images have the “stationarity” property, which implies that features that are useful in one region are also likely to be useful for other regions.

    Convolutional networks may include local or global pooling layers[clarification needed], which combi ...