ajax实战篇---城市select联动----XML交互

举报
孙中明 发表于 2022/01/22 23:35:18 2022/01/22
【摘要】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>城市联动效果</title> <meta http-equiv="pragma" c...

  
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>城市联动效果</title>
  5. <meta http-equiv="pragma" content="no-cache">
  6. <meta http-equiv="cache-control" content="no-cache">
  7. <meta http-equiv="expires" content="0">
  8. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  9. <meta http-equiv="description" content="This is my page">
  10. <meta http-equiv="content-type" content="text/html;charset=utf-8">
  11. <!--
  12. <link rel="stylesheet" type="text/css" href="styles.css">
  13. -->
  14. <script type="text/javascript">
  15. <!--
  16. //第一步---------------------创建ajax引擎
  17. function getXmlHttpObject(){
  18. var xmlHttpRequest;
  19. //不同的浏览器获取对象xmlhttprequest 对象方法不一样
  20. if(window.ActiveXObject){
  21. xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");//这个是ie内核
  22. }else{
  23. xmlHttpRequest=new XMLHttpRequest();//非ie内核
  24. }
  25. return xmlHttpRequest;//将创建创建的ajax引擎实例化
  26. }
  27. var myXmlHttpRequest="";//设置全局变量 为了后面的chuli 函数需要取得属性
  28. //第二步---------------------获取数据并发送服务器
  29. function sendRequest(){
  30. myXmlHttpRequest=getXmlHttpObject();//从实例化的模型里面的方法函数
  31. if(myXmlHttpRequest){
  32. var url="./CityList.php";//url 属性 选择提交的地址
  33. var data="provice="+$('sheng').value;//数据 id为sheng的数据取得数据
  34. myXmlHttpRequest.open("post",url,true);//这里选择提交的方式post 异步操作
  35. myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//打开请求.
  36. //指定为了第四步处理做准备回调函数.chuli是函数名
  37. myXmlHttpRequest.onreadystatechange=chuli;
  38. //第二部--------------------------发送数据到服务器端
  39. myXmlHttpRequest.send(data);
  40. }
  41. }
  42. //第四步------------------------------------------------对返回的数据进行处理处理函数
  43. function chuli(){
  44. //成功返回
  45. if(myXmlHttpRequest.readyState==4){
  46. if(myXmlHttpRequest.status==200){
  47. var cities=myXmlHttpRequest.responseXML.getElementsByTagName("city");//这里获取xml的标签 切记注意大小写
  48. $('city').length=0;
  49. for(var i=0;i<cities.length;i++){
  50. var city_val=cities[i].childNodes[0].nodeValue;
  51. //创建optiion
  52. var myOption=document.createElement("option");
  53. myOption.value=city_val;
  54. myOption.innerText=city_val;
  55. $('city').appendChild(myOption);
  56. }
  57. }
  58. }
  59. }
  60. function $(id){
  61. return document.getElementById(id);
  62. }
  63. -->
  64. </script>
  65. </head>
  66. <body>
  67. <select id="sheng" οnchange="sendRequest();">
  68. <option value="">---省---</option>
  69. <option value="zhejiang">浙江</option>
  70. <option value="jiangsu" >江苏</option>
  71. </select>
  72. <select id="city">
  73. <option value="">--城市--</option>
  74. </select>
  75. <select id="county">
  76. <option value="">--县城--</option>
  77. </select>
  78. </body>
  79. </html>

 


  
  1. <?php
  2. //这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式
  3. header("Content-Type: text/xml;charset=utf-8");
  4. //告诉浏览器不要缓存数据
  5. header("Cache-Control: no-cache");
  6. //获取用户提交城市名
  7. $province=$_POST['provice'];
  8. //第三步-------------------------------------准备返回xml格式的结果..
  9. $result="";
  10. if($province=="zhejiang"){
  11. $result="<states><city>绍兴</city><city>杭州</city><city>温州</city><city>义乌</city></states>";
  12. }else if($province=="jiangsu"){
  13. $result="<states><city>南京</city><city>盐城</city><city>苏州</city></states>";
  14. }
  15. echo $result;
  16. ?>






文章来源: hiszm.blog.csdn.net,作者:孙中明,版权归原作者所有,如需转载,请联系作者。

原文链接:hiszm.blog.csdn.net/article/details/72793580

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。