本文執行個體講述了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相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《smarty模板入門基礎教程》及《PHP模板技術總結》。
PS:關於json操作,這裡再為大家推薦幾款比較實用的json線上工具供大家參考使用:
線上JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json
JSON線上格式化工具:
http://tools.jb51.net/code/jsonformat
線上XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson
json代碼線上格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat
線上json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans
C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
希望本文所述對大家基於ThinkPHP架構的PHP程式設計有所協助。