+ -
当前位置:首页 → 问答吧 → jQuery/Ajax/PHP/Json 的一个综合例子

jQuery/Ajax/PHP/Json 的一个综合例子

时间:2008-11-26

来源:互联网

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 以上版本。
    示例代码(包括 json 的类包软件)可以在以下网址下载:http://download.csdn.net/source/810895
    以下是全部代码:
<html>
<head>
<title>jQuery Ajax 实例演示</title>
</head>
<script language="javascript" src="../lib/jquery.js"></script>
<script language="javascript">
$(document).ready(function ()
{
   $('#send_ajax').click(function (){
     var params=$('input').serialize(); //序列化表单的值
     $.ajax({
       [url='ajax_json.php]url:'ajax_json.php'[/url], //后台处理程序
       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(
      '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.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);
    }
  }
?>
    张庆(网眼) 2008-11-26
    来自“网眼视界”:http://blog.why100000.com
    “十万个为什么”电脑学习网:http://www.why100000.com
    CSDN博客:http://blog.csdn.net/zhangking
    CSDN空间:http://hi.csdn.net/zhangking

作者: 西安PHPer   发布时间: 2008-11-26

赞一个

作者: ieliwb   发布时间: 2008-11-26

没法用

作者: czly   发布时间: 2008-11-27

json/json.class.php在哪?

作者: czly   发布时间: 2008-11-27

示例代码(包括 json 的类包软件-json.class.php)可以在以下网址下载:http://download.csdn.net/source/810895

作者: 西安PHPer   发布时间: 2008-11-27

5.2以后就不用类了

作者: ieliwb   发布时间: 2008-11-28

jquery真是个好东西啊,不学对不起自己

作者: mailangel123   发布时间: 2008-11-28

恩  jquery是很厉害的  顶!

作者: liangkuan125   发布时间: 2008-12-25

好了各位大虾,都是在用Jquery 以前看过EXT,难到EXT不如Jquery吗?

顺便说声,楼主代码写得不错!

作者: cone   发布时间: 2008-12-27

EXT和Jquery是两码事  更喜欢Jquery

作者: sheak   发布时间: 2008-12-27

看不懂。。。

作者: huangwu   发布时间: 2009-03-02

不过是来回转换一下而已

作者: joj_79   发布时间: 2009-03-03

现在是用id调用id='send_ajax'',[  $('#send_ajax').click(function (){

怎么改为用函数调用呢?onclick='send_ajax'';

作者: chyoqin   发布时间: 2009-03-07

回传的数据,能直接交给smarty处理吗,我习惯用smarty来处理

作者: knight2010   发布时间: 2009-03-31

怎么调用不了$arr['append'] = '测试字符串';//想调用这个值[code]<?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);
    }
  }
?>
[/code][code]
<html>
<head>
<title>jQuery Ajax 实例演示</title>
</head>
<script language="javascript" src="./jquery.js"></script>
<script language="javascript">
$(document).ready(function(){

  //$.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']+ "<br/>测试:" + myjson['append']);
      }
    );
   });

});

</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>
[/code]显示
结果:空的。

作者: chyoqin   发布时间: 2009-09-29

顶一个先

作者: lanxuexing   发布时间: 2009-09-30