本文實例講述了ThinkPHP中使用ajax接收json數據的方法。分享給大家供大家參考。具體分析如下:
這裡通過ThinkPHP+jquery實現ajax,擴展了下,寫了個查詢,前台代碼如下:
首先需要引入jquery.js,主要代碼如下:
復制代碼 代碼如下:function ajax(id,pic){
//由於ThinkPHP不解析JavaScript裡的ThinkPHP常量,所以需要先在這裡定義。
var URL='__URL__';
$.ajax({
url: URL+'/returnAjax/id/'+id,//提交訪問的URL
type: 'GET',//提交的方法
dataType: 'text',//返回的內容的類型,由於PHP文件是直接echo的,那麼這裡就是text
timeout: 1000,//超時時間
error: function(){ //如果出錯,執行函數
alert('Error loading XML document');
},
success: function(data){
//alert(data);//如果成功,彈出數據
writeHtml(data,pic);
}
});
}
function writeHtml(data,pic){
var product = eval('(' + data + ')'); //即使不引入json.js也可以轉成json對象
//alert($("#cate_pic").attr("src"));
$("#cate_pic").attr("src","../images/"+pic);
$("#product_pic").attr("src","../Attachments/product/"+product.attachpath+"/"+product.attachthumb);
$("#product_subject").html(product.subject);
$("#product_content").html(product.content);
}
Product.class.php中使用echo輸出,thinkphp中json_encode()方法可將對象自動轉成json格式
復制代碼 代碼如下:public function returnAjax(){
$id = $_GET['id'];
$Product=D('Product')->where('id='.$id)->find();
//返回一個json格式的數據集
echo json_encode($Product);
//print_r(json_encode($Product));
}
返回的數據格式如下:
復制代碼 代碼如下:
{
"id":"9",
"userid":"1",
"cid":"10",
"cid":"10",
"subject":"1111",
"color":"",
"spec":"",
"size":"",
"keywords":"",
"content":"<p>1111</p>",
"meno":"1111",
"attachpath":"200903",
"attachment":"49d1d86e68d31.png",
"attachthumb":"49d1d86e68d31_thumb.png"
}
希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。