ThinkPHP中使用ajax接收json数据的方法

这篇文章主要介绍了ThinkPHP中使用ajax接收json数据的方法,包括了前台js代码与对应的PHP处理代码,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了ThinkPHP中使用ajax接收json数据的方法。分享给大家供大家参考。具体分析如下:

这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下:

首先需要引入jquery.js,主要代码如下:

  1. function ajax(id,pic){
  2. //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义。
  3. var URL='__URL__';
  4. $.ajax({
  5. url: URL+'/returnAjax/id/'+id,//提交访问的URL
  6. type: 'GET',//提交的方法
  7. dataType: 'text',//返回的内容的类型,由于PHP文件是直接echo的,那么这里就是text
  8. timeout: 1000,//超时时间
  9. error: function(){ //如果出错,执行函数
  10. alert('Error loading XML document');
  11. },
  12. success: function(data){
  13. //alert(data);//如果成功,弹出数据
  14. writeHtml(data,pic);
  15. }
  16. });
  17. }
  18. function writeHtml(data,pic){
  19. var product = eval('(' + data + ')'); //即使不引入json.js也可以转成json对象
  20. //alert($("#cate_pic").attr("src"));
  21. $("#cate_pic").attr("src","../images/"+pic);
  22. $("#product_pic").attr("src","../Attachments/product/"+product.attachpath+"/"+product.attachthumb);
  23. $("#product_subject").html(product.subject);
  24. $("#product_content").html(product.content);
  25. }

Product.class.php中使用echo输出,thinkphp中json_encode()方法可将对象自动转成json格式,代码如下:

  1. public function returnAjax(){
  2. $id = $_GET['id'];
  3. $Product=D('Product')->where('id='.$id)->find();
  4. //返回一个json格式的数据集
  5. echo json_encode($Product);
  6. //print_r(json_encode($Product));
  7. }

返回的数据格式如下:

  1. {
  2. "id":"9",
  3. "userid":"1",
  4. "cid":"10",
  5. "cid":"10",
  6. "subject":"1111",
  7. "color":"",
  8. "spec":"",
  9. "size":"",
  10. "keywords":"",
  11. "content":"<p>1111</p>",
  12. "meno":"1111",
  13. "attachpath":"200903",
  14. "attachment":"49d1d86e68d31.png",
  15. "attachthumb":"49d1d86e68d31_thumb.png"
  16. }