Php 如果阵列发生更改,如何发送警报?
如果Php 如果阵列发生更改,如何发送警报?,php,javascript,jquery,json,Php,Javascript,Jquery,Json,如果NewMessage发生更改,我需要一个警报。我尝试了live和change-on和bindchange,但没有任何效果 相关PHP: $message=6; $myReturnData["Message"] = $message; //JSON-encode and return print json_encode($myReturnData); 相关jQuery: setInterval(function(){ $.getJSON("foo.php", f
NewMessage
发生更改,我需要一个警报。我尝试了live
和change-on
和bindchange
,但没有任何效果
相关PHP:
$message=6;
$myReturnData["Message"] = $message;
//JSON-encode and return
print json_encode($myReturnData);
相关jQuery:
setInterval(function(){
$.getJSON("foo.php", function(data){
var NewMessage=(data.Message);
if(NewMessage>0){
document.title= NewMessage + ' pm';}
$(NewMessage).live("change", function() {
alert(NewMessage);
});
});
}, 3000);
“改变”不是做你认为应该做的事情。您应该将原始消息存储在一个变量中,然后将其与您得到的新消息进行比较。像这样:
var currentMessage = '';
setInterval(function(){
$.getJSON("foo.php", function(data){
var NewMessage=(data.Message);
if(NewMessage>0){
document.title= NewMessage + ' pm';
if (currentMessage !== NewMessage) {
alert(NewMessage);
currentMessage = NewMessage;
}
}
});
}, 3000);
假设您希望在服务器控制的变量更改时运行函数X。这意味着您正在使用轮询机制 因此,如果您想让代码知道何时收到不同的消息,那么必须将上一条消息存储在回调函数范围之外的某个位置 最简单的方法:
var lastMessage = 'the server will never ever forever ever return this message';
setInterval(function(){
$.getJSON("foo.php", function(data){
// .. arbitrary code
if (lastMessage != data.Message)
{
alert('it changed');
lastMessage = data.Message;
}
// .. more arbitrary code
});
}, 3000);
我认为下面的代码没有任何意义,甚至无法远程工作,因为NewMessage不是DOM元素,是吗
$(NewMessage).live("change", function() {
alert(NewMessage);
});
请详细说明你的问题。你写的问题令人费解。我想如果NewMessage更改警报我试图根据你的评论解释你的问题“我想如果NewMessage更改得到警报,我不知道该怎么做,我尝试更改绑定更改的实时更改,但我不能感谢”。我会交换最里面的两行;分配,然后警报。