本文实例讲述了ThinkPHP中使用ajax接收json数据的方法。分享给大家供大家参考。具体分析如下:
这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下:
首先需要引入jquery.js,主要代码如下:
function ajax(id,pic){<br /> //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义。 <br />var URL='__URL__';<br /> $.ajax({<br /> url: URL+'/returnAjax/id/'+id,//提交访问的URL<br /> type: 'GET',//提交的方法<br /> dataType: 'text',//返回的内容的类型,由于PHP文件是直接echo的,那么这里就是text<br /> timeout: 1000,//超时时间<br /> error: function(){ //如果出错,执行函数<br /> alert('Error loading XML document');<br /> },<br /> success: function(data){<br /> //alert(data);//如果成功,弹出数据<br /> writeHtml(data,pic);<br /> }<br /> <i style="color:transparent">本#文来源gaodai$ma#com搞$$代**码网$</i><button>搞代gaodaima码</button> });<br />}<br />function writeHtml(data,pic){<br /> var product = eval('(' + data + ')'); //即使不引入json.js也可以转成json对象 <br /> //alert($("#cate_pic").attr("src"));<br /> $("#cate_pic").attr("src","../images/"+pic);<br /> $("#product_pic").attr("src","../Attachments/product/"+product.attachpath+"/"+product.attachthumb);<br /> $("#product_subject").html(product.subject);<br /> $("#product_content").html(product.content);<br />}
Product.class.php中使用echo输出,thinkphp中json_encode()方法可将对象自动转成json格式
public function returnAjax(){ <br /> $id = $_GET['id']; <br /> $Product=D('Product')->where('id='.$id)->find(); <br /> //返回一个json格式的数据集 <br /> echo json_encode($Product); <br />//print_r(json_encode($Product)); <br />}
返回的数据格式如下:
<br />{<br /> "id":"9",<br /> "userid":"1",<br /> "cid":"10",<br /> "cid":"10",<br /> "subject":"1111",<br /> "color":"",<br /> "spec":"",<br /> "size":"",<br /> "keywords":"",<br /> "content":"<p>1111
“,
“meno”:”1111″,
“attachpath”:”200903″,
“attachment”:”49d1d86e68d31.png”,
“attachthumb”:”49d1d86e68d31_thumb.png”
}
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。