關於ajax區域性重新整理,從資料庫實時更新資料到頁面(一般是下訂單成功後傳送訊息到後臺)
阿新 • • 發佈:2019-02-03
關於ajax區域性重新整理,從資料庫實時更新資料到訊息框(通知框),一般是下訂單後傳送訊息到後臺,這個後臺的訊息(或者通知)是實時更新的,就需要用到區域性重新整理。
思路:
1、要提交到後臺稽核,就應該有一個狀態值,所以資料庫中應該有對應的存取狀態的欄位‘status’,使用者提交過來的資料是未稽核的,後臺會根據這個欄位做查詢取出資料並展示到訊息框中
2.“實時”者就是要重新整理,就是要定時,要定時的去查詢資料庫中未稽核狀態的資料,如果有就取出來放到訊息框中
3,這個訊息圖示在頁面中佔很小的一塊,所以只是區域性重新整理就可以了
“重新整理”這一關鍵字,用的最多的技術應該是ajax,但是之前總以為ajax只能用來提交資料或者提交請求,從沒想過不傳送請求只往回來取資料這一情況,最後也驗證了這種情況是行的通,下面是我寫的一個demo
JavaScript部分:
<script>
$(document).ready(function(){//定時
setInterval(function(){
$.ajax({
type:"POST",
dataType:"",
url:"__CONTROLLER__/ajx",
async:false,
cache :false,
timeout:3,
success:function(data){
var obj = eval("("+data+")");
var str='';
for(var i in obj){ //表示遍歷陣列,
$("#res").empty(); //清空前一次重新整理資料,不清除索表會出錯
str+='<p class="dropdown-header">' +obj[i].name+'</p>';//訊息框
}
$("#res").append(str);
$("#strcunt").html(obj.length);
},
});
}, 3);
//
});
</script>PHP部分:
public function ajx(){
$model = M('nametest');
$res = $model -> where('status = 1')->select();
echo json_encode($res);
}
程式碼肯定有需要改進的地方,希望有人能指出來共同學習。