Ajax实现简单下拉选项

AlgoCipherMaster
• 阅读 138

基本都是固定步骤!主要在JAVASCRIPT和PHP中的操作
1、HTML代码里就只有两个SELECT标签如下:

 <select id="province">
    <option>请选择</option>
  </select>
  <select id="city">
    <option>请选择</option>
  </select>

2、Javascript中进行创建选项和执行AJAX异步请求步骤如下

 <script>
    var xhr = getXhr();
    // 第一次执行Ajax异步请求 - 省份
    window.onload = function(){
        xhr.open("get","finaly.php?state=1");
        xhr.send(null);
        xhr.onreadystatechange = function(){
        if(xhr.readyState==4&&xhr.status==200){
                var data = xhr.responseText;
                // 将字符串转换为数组
                var provinces = data.split(",");
                // 遍历数组
                for(var i=0;i<provinces.length;i++){
                    // 创建option元素添加到id为province元素上
                    var option = document.createElement("option");
                    var text = document.createTextNode(provinces[i]);
                    option.appendChild(text);
                    var province = document.getElementById("province");
                    province.appendChild(option);
                }
            }    
        }
    }
    // 第二次执行Ajax异步请求 - 城市
    var provinceEle=document.getElementById("province");
    provinceEle.onchange = function(){
        var city = document.getElementById("city");
        var opts = city.getElementsByTagName("option");
        for(var z=opts.length-1;z>0;z--){
            city.removeChild(opts[z]);
        }
        
        if(province.value != "请选择"){
            xhr.open("post","finaly.php");
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            xhr.send("province="+province.value);
            xhr.onreadystatechange = function(){
                if(xhr.readyState==4&&xhr.status==200){
                    var data = xhr.responseText;
                    var cities = data.split(",");
                    for(var i=0;i<cities.length;i++){
                        var option = document.createElement("option");
                        var text = document.createTextNode(cities[i]);
                        option.appendChild(text);
                        
                        city.appendChild(option);
                    }
                }
            }
        }

    }

    function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest){
            xhr = new XMLHttpRequest();
        }else{
            xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;
    }
  </script>

  3、PHP代码如下:文件名为:finaly.php与JS中:xhr.open(method,url)方法的url对接!

 <?php
    // 接收客户端发送的请求数据 - state
    $state = $_REQUEST['state'];
    // 判断$state的值
    if($state == 1){// 获取省份
        echo '山东省,辽宁省,吉林省';
    }else{// 获取城市
        $province = $_POST['province'];
        switch ($province){
            case '山东省':
                echo '青岛市,济南市,威海市,日照市,德州市';
                break;
            case '辽宁省':
                echo '沈阳市,大连市,铁岭市,丹东市,锦州市';
                break;
            case '吉林省':
                echo '长春市,松原市,吉林市,通化市,四平市';
                break;
        }
    }
?>

关键就是如何实现AJAX异步交互:参考JS代码。可以说的固定步骤
转载于猿2048:➦《Ajax实现简单下拉选项》

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Stella981 Stella981
3年前
ASMSupport教程4.7 生成关系运算符
<p在java中,关系运算符是很常用的,分别是&gt;,,&lt;,&gt;,&lt;,!这六种,我们按照惯例看看我们需要生成的代码:</p<divid"scid:9D7513F9C04C4721824A2B34F0212519:dfec0f1ca2ec4ebabc9b91c161fbfa47"class"wlWri
Stella981 Stella981
3年前
Jenkins配置下拉菜单联动效果
  在使用Jenkins集成时,经常需要配置一些环境信息,由于测试、线上、预发布需要切换环境和域名,需要在Jenkins中配置下拉菜单联动效果。  首先选择参数化构建过程,然后首先配置环境,环境分为:测试环境、预发布环境、正式环境,选择的组件为ChoiceParameter,Name定义为environment,选项为test、pre、onli
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
MongoDB中的关键字有很多,$lt$gt$lte$gte等等,这么多我们也不方便记,这里我们说说几个比较常见的一.查询中常见的等于大于小于大于等于小于等于等于:在MongoDB中什么字段等于什么值其实就是":"来搞定比如"name":"路飞学城"!(https://oscimg.oschin
Wesley13 Wesley13
3年前
MongoDB 范围查询
查询价格在2009000  $gt 大于   $lt  小于//查询价格2009000范围的数据db.prodgory.find({"price":{$gt:"200",$lt:"9000"}})查询给定范围数据  $in//给定范围查询db.product1.find({"categor
Wesley13 Wesley13
3年前
(selenium+python)_UI自动化05_定位select下拉列表
前言web网页大多选择功能使用下拉列表方式实现,在selenium进行自动化过程中,可通过Select类实现下拉列表的多种操作。Select常用方法select_by_index()通过索引定位选项select_by_value()通过value值定位选项select_by_visib
小万哥 小万哥
1年前
资源描述框架的用途及实际应用解析
RDF(资源描述框架)是一种用于机器理解网络资源的框架,使用XML编写。它通过URI标识资源,用属性描述资源,便于计算机应用程序处理信息。RDF在语义网上促进信息的确切含义和自动处理,使得网络信息可被整合。RDF语句由资源、属性和属性值组成。RDF文档包括&lt;rdf:RDF&gt;根元素和&lt;rdf:Description&gt;元素,后者用about属性标识资源。RDF还支持容器(如&lt;Bag&gt;、&lt;Seq&gt;和&lt;Alt&gt;)来描述集合。RDFS是RDF的扩展,提供描述类和属性的框架,而达布林核心是一组预定义属性,用于描述文档。
小万哥 小万哥
1年前
RSS 解析:全球内容分发的利器及使用技巧
RSS(ReallySimpleSyndication)是一种XML格式,用于网站内容的聚合和分发,让用户能快速浏览和跟踪更新。RSS文档结构包括&lt;channel&gt;和&lt;item&gt;元素,允许内容创作者分享标题、链接和描述。通过RSS,用户可以定制新闻源,过滤不相关信息,提高效率。RSS支持不同版本,如RSS0.91和RSS2.0,其中RSS2.0语法简单且广泛使用。RSS提高网站流量,适用于新闻、博客、日历等频繁更新的站点。RSS的历史始于1997年,至今仍无官方标准,但已成为内容共享的重要工具。