Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax通知系统-使用最新的通知id_Php_Jquery_Ajax_Json - Fatal编程技术网

Php Ajax通知系统-使用最新的通知id

Php Ajax通知系统-使用最新的通知id,php,jquery,ajax,json,Php,Jquery,Ajax,Json,因此,我的系统大部分都在工作,我被困在最后一点上 GET当前使用的是它从while循环中获得的相同通知id,因此它不断地根据该id搜索新记录 就像这样 jquery....4862996 (line 4) GET http://viewajax.php?notification_id=43&_=1405814864693 jquery....4862996 (line 4) GET http://viewajax.php?notification_id=43&_=140581

因此,我的系统大部分都在工作,我被困在最后一点上

GET当前使用的是它从while循环中获得的相同通知id,因此它不断地根据该id搜索新记录

就像这样

jquery....4862996 (line 4)
GET http://viewajax.php?notification_id=43&_=1405814864693


jquery....4862996 (line 4)
GET http://viewajax.php?notification_id=43&_=1405814864694
我要做的是从while循环中搜索第一个通知id,然后将其发送到服务器端viewajax.php,查看是否有新记录,以及是否有新记录插入到其div中(当前是这样),然后在下一个ajax周期中使用来自服务器的相同新通知id来获取新记录。我什么都试过了,问了很多问题,我一直在网上到处寻找可能的解决办法,但都没有用。 任何帮助都将不胜感激,我将永远爱你

阿贾克斯

编辑

PHP源代码

{"num":0,"notification_id":null,"notification_content":null,"notification_triggeredby":null,"notification_time":null}
AJAX源代码

  <script type="text/javascript">

function loadIt() {


  var notification_id=44
$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id,   
dataType:"json",
cache: false,
success: function(data){
 $("#notif_actual_text-"+notification_id).prepend('<div class="notif_ui"><div class="notif_text"><div  id="notif_actual_text-'+data['notification_id']+'" class="notif_actual_text"><img border=\"1\" src=\"userimages/cropped'+data['notification_triggeredby']+'.jpg\" onerror=this.src=\"userimages/no_profile_img.jpeg\" width=\"40\" height=\"40\" ><br /><a href="'+data['notification_id']+'">'+data['notification_content']+' </a><br />'+data['notification_time']+'<br /></div></div></div></div>');
 i = parseInt($("#mes").text()); $("#mes").text((i+data.num)); 
}
});
}
setInterval(loadIt, 10000);              



          </script>

函数loadIt(){
var通知_id=44
$.ajax({
键入:“获取”,
url:“viewajax.php?notification_id=“+notification_id,
数据类型:“json”,
cache:false,
成功:功能(数据){
$(“#notif_实际_文本-”+通知id).prepend(“

”+数据[“通知时间”]+”
); i=parseInt($(“#mes”).text();$(“#mes”).text((i+data.num)); } }); } 设置间隔(加载时间,10000);
在php部件中检索“通知状态”后,为什么不将其更新为0?那么它将不会再次被检索

如果您发布正确缩进的代码并发布浏览器看到的内容(在浏览器中使用View/Source),而不是PHP模板文件,那么您就更有可能获得javascript方面的帮助。就目前而言,我不知道JS实际上是什么样子,因为我不知道嵌入到模板中的PHP会做什么。如果您发布浏览器看到的内容,那么这就不再是一个问题。也不清楚您的具体问题是什么。每次Ajax都会从客户端的while循环中从数据库中的最后一个\u id触发它。。它将该id传递到服务器端并搜索新记录。假设有一条新记录,它返回并插入到一个div中。然后再次重新启动aax进程,只使用它第一次搜索数据库时使用的相同id。。它刚刚找到的那个新id,我需要用它来搜索,所以有一个新数据的循环。我不能用相同的通知id来搜索新数据。。因为之后的任何东西都会被一次又一次地打印出来。我需要始终按id搜索新数据,并且始终具有新数据。我需要以某种方式使用data.notification\u id,因为这将是下一个间隔的新id。
{"num":0,"notification_id":null,"notification_content":null,"notification_triggeredby":null,"notification_time":null}
  <script type="text/javascript">

function loadIt() {


  var notification_id=44
$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id,   
dataType:"json",
cache: false,
success: function(data){
 $("#notif_actual_text-"+notification_id).prepend('<div class="notif_ui"><div class="notif_text"><div  id="notif_actual_text-'+data['notification_id']+'" class="notif_actual_text"><img border=\"1\" src=\"userimages/cropped'+data['notification_triggeredby']+'.jpg\" onerror=this.src=\"userimages/no_profile_img.jpeg\" width=\"40\" height=\"40\" ><br /><a href="'+data['notification_id']+'">'+data['notification_content']+' </a><br />'+data['notification_time']+'<br /></div></div></div></div>');
 i = parseInt($("#mes").text()); $("#mes").text((i+data.num)); 
}
});
}
setInterval(loadIt, 10000);              



          </script>