Home >Web Front-end >JS Tutorial >Ajax implements simple drop-down option effect

Ajax implements simple drop-down option effect

韦小宝
韦小宝Original
2018-01-10 09:58:311641browse

The following editor will bring you an Ajax implementation of simple drop-down option effects. The editor thinks it's pretty good. Now I'll share the ajax source code with you. If you are interested in ajax, follow the editor to have a look.

It's basically fixed steps! Mainly operations in JAVASCRIPT and PHP

1. There are only two SELECT tags in the HTML code as follows:

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


2 , The steps to create options and perform AJAX asynchronous requests in Javascript are as follows


<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 code is as follows: File name: finaly.php and JS Medium: URL docking of xhr.open(method,url) method!

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

The above Ajax implementation of simple drop-down option effects is all the content shared by the editor. I hope it can give you a reference! !

Related recommendations:

A brief analysis of the principles, advantages and disadvantages of Ajax

##ajax realizes the function of long connection between the server and the browser

Ajax implementation of flicker-free scheduled refresh page example code

The above is the detailed content of Ajax implements simple drop-down option effect. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn