天天看點

jQuery/Ajax/PHP/Json 的一個綜合例子

jQuery/Ajax/PHP/Json 的一個綜合例子

    jQuery 是一個優秀的 Javascript 架構,對 js 進行了優秀的包裝,提供了許多友善的功能。jQuery 對 ajax 的包裝也堪稱優秀。

    jQuery 可以以 json 檔案傳輸協定來傳輸資料(類似 xml,而且大有取代 xml 的趨勢),而網站背景代碼必須與之配合使用。PHP 是用 json_encode 函數來對傳回的數組資料進行編碼的,但這個函數隻有 PHP5.2版本以上才支援。

    從網上找到一個 json 的操作類,本人在 PHP4.4.7 版本下測試通過。本人還建了個函數 function my_json_encode($phparr),使代碼相容 PHP5.2 以上版本。

    以下是全部代碼:

<html> 

<head> 

<title>jQuery Ajax 執行個體示範</title> 

</head> 

<script language=”javascript” src=”../lib/jquery.js” mce_src=”../lib/jquery.js”></script> 

<script language=”javascript”> 

$(document).ready(function ()  

{  

   $(’#send_ajax’).click(function (){  

     var params=$(’input’).serialize(); //序列化表單的值  

     $.ajax({  

       url:’ajax_json.php’, //背景處理程式  

       type:’post’,         //資料發送方式  

       dataType:’json’,     //接受資料格式  

       data:params,         //要傳遞的資料  

       success:update_page  //回傳函數(這裡是函數名)  

     });  

   });  

  //$.post()方式:  

  $(’#test_post’).click(function (){  

    $.post(  

      ‘ajax_json.php’,  

      {  

        username:$(’#input1′).val(),  

        age:$(’#input2′).val(),  

        sex:$(’#input3′).val(),  

        job:$(’#input4′).val()  

      },  

      function (data) //回傳函數  

        var myjson=”;  

        eval(’myjson=’ + data + ‘;’);  

        $(’#result’).html(”姓名:” + myjson.username + “<br/>工作:” + myjson[’job’]);  

      }  

    );  

  //$.get()方式:  

  $(’#test_get’).click(function ()  

  {  

    $.get(  

        username:$(”#input1″).val(),  

        age:$(”#input2″).val(),  

        sex:$(”#input3″).val(),  

        job:$(”#input4″).val()  

      function(data) //回傳函數  

        eval(”myjson=” + data + “;”);  

        $(”#result”).html(myjson.job);  

  });  

});  

function update_page (json)  //回傳函數實體,參數為XMLhttpRequest.responseText  

  var str=”姓名:”+json.username+”<br />”;  

  str+=”年齡:”+json.age+”<br />”;  

  str+=”性别:”+json.sex+”<br />”;  

  str+=”工作:”+json.job+”<br />”;  

  str+=”追加測試:”+json.append;  

  $(”#result”).html(str);  

}  

</script> 

<body> 

  <div id=”result” style=”background:orange;border:1px solid red;width:300px;height:200px;”></div> 

  <form id=”formtest” action=”" method=”post”> 

    <p><span>輸入姓名:</span><input type=”text” name=”username” id=”input1″ /></p> 

    <p><span>輸入年齡:</span><input type=”text” name=”age” id=”input2″ /></p> 

    <p><span>輸入性别:</span><input type=”text” name=”sex” id=”input3″ /></p> 

    <p><span>輸入工作:</span><input type=”text” name=”job” id=”input4″ /></p> 

  </form> 

  <button id=”send_ajax”>送出</button> 

  <button id=”test_post”>POST送出</button> 

  <button id=”test_get”>GET送出</button> 

</body> 

</html> 

PHP 檔案 ajax_json.php:  

<?php 

  //$arr = $_POST; //若以$.get()方式發送資料,則要改成$_GET.或者幹脆:$_REQUEST  

  $arr = $_REQUEST;  

  $arr[’append’] = ‘測試字元串’;  

  //print_r($arr);  

  $myjson = my_json_encode($arr);  

  echo $myjson;  

  function my_json_encode($phparr)  

    if(function_exists(”json_encode”))  

    {  

      return json_encode($phparr);  

    }  

    else  

      require_once ‘json/json.class.php’;  

      $json = new Services_JSON;  

      return $json->encode($phparr);  

  }  

?> 

本文轉自網眼51CTO部落格,原文連結:http://blog.51cto.com/itwatch/286471,如需轉載請自行聯系原作者