ajax 의 세 가지 해석 모드 공유

1.Ajax 의 JSON 형식
html 코드:

<html>
<body>
 <input type="button" value="Ajax" id="btn">
 <script>
  var btn = document.getElementById("btn");
  btn.onclick = function(){
    var xhr = getXhr();
    xhr.open("post","10.php");
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    /*
     *         JSON  
     * *     JSON      
     */
    var user = '{"name":"zhangwuji","pwd":"123456"}';
    xhr.send("user="+user);
    xhr.onreadystatechange = function(){
      if(xhr.readyState==4&&xhr.status==200){
        var data = xhr.responseText;
        /*
         *   eval()      
         * *   "()"    ,eval()         JSON  (javascript  )
         * *    "()"    ,eval()              
         */
        var json = eval("("+data+")");
        console.log(json);
      }
    }
  }
  function getXhr(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
    }else{
      xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;
  }
 </script>
 </body>
</html> 
PHP 코드:

<?php
  //             
  $user = $_POST['user'];
  //     JSON   string   
  //var_dump($user);
  $json_user = json_decode($user,true);
  //var_dump($json_user['name']);
  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
  //var_dump(json_decode($json));
  //       JSON      
  // 1.       
  //echo '{"name":"zhouzhiruo","pwd":"123456"}';
  // 2.   json_encode()  
  echo json_encode($json_user);
?> 
둘째.    Ajax 의 XML 형식
html 페이지:

<html>
   <body>
 <input type="button" value="Ajax" id="btn">
 <script>
  var btn = document.getElementById("btn");
  btn.onclick = function(){
    //   Ajax     
    var xhr = getXhr();
    xhr.open("post","07.php");
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    /*
     *       XML       
     * *   
     *  *         - key=value      
     * *  value      XML     
     *  *      -    (string)
     *  *     XML     
     * *     
     *  *      -     XML     
     *  *  send()      
     */
    var user = "<user><name>zhangwuji</name><pwd>123456</pwd></user>";
    xhr.send("user="+user);
    xhr.onreadystatechange = function(){
      if(xhr.readyState==4&&xhr.status==200){
        //            
        var xmlDoc = xhr.responseXML;
        var nameEle = xmlDoc.getElementsByTagName("name")[0];
        var txtEle = nameEle.childNodes[0];
        console.log(txtEle.nodeValue);
      }
    }
  }
  function getXhr(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
    }else{
      xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;
  }
 </script>
 </body>
</html> 
PHP 페이지 코드:

<?php
  //             
  $user = $_POST['user'];//  XML     string  
  //var_dump($user);
  //   DOMDocument  
  $doc = new DOMDocument();
  //   loadXML()  
  $result = $doc->loadXML($user);
  //var_dump($doc);
  //       XML     
  /*       Content-Type  "text/xml"
  header('Content-Type:text/xml');
  echo $user;//   XML   string  
  */
  header('Content-Type:application/xml');
  echo $doc->saveXML();
?> 
셋.   Ajax 의 HTML 형식
HTML 페이지:

<html>
  <body>
 <select id="province">
  <option>   </option>
  <option>   </option>
  <option>   </option>
  <option>   </option>
 </select>
 <select id="city">
  <option>   </option>
 </select>
 <script>
  /*
   *         ?
   * *        Ajax     ?
   *  *              
   */
  // 1.  id province    onchange  
  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(provinceEle.value != "   "){
      // 2.   Ajax    
      var xhr = getXhr();
      xhr.open("post","06.php");
      xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      xhr.send("provcince="+provinceEle.value);
      xhr.onreadystatechange = function(){
        if(xhr.readyState==4&&xhr.status==200){
          //            
          var data = xhr.responseText;
          // data    ,     
          var cities = data.split(",");
          for(var i=0;i<cities.length;i++){
            var option = document.createElement("option");
            var textNode = document.createTextNode(cities[i]);
            option.appendChild(textNode);
            city.appendChild(option);
          }
        }
      }
    }
  }
  //     XMLHttpRequest     
  function getXhr(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
    }else{
      xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;
  }
 </script>
 </body>
</html> 
php 페이지:

<?php
  //                 
  // 1.             
  $province = $_POST['provcince'];
  // 2.          ,         
  switch ($province){
    case '   ':
      echo '   ,   ,   ,   ,   ';
      break;
    case '   ':
      echo '   ,   ,   ,   ,   ';
      break;
    case '   ':
      echo '   ,   ,   ,   ,   ';
      break;
  }
  //            
?>
이상 의 내용 은 소 편 이 ajax 를 공유 하 는 세 가지 해석 모델 입 니 다.마음 에 드 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기