2014-01-09 1 views
0

이제 알림 기능이있는 웹 사이트를 실행하고 60 초마다 새 메시지를 확인하는 스크립트를 실행하고 싶습니다. 내가해야 할 일은 스크립트를 통해 사용 ID를 전달하여 경고를 생성하는 것입니다 (지금은 기본 브라우저 경고를 사용했습니다). 그러나 코드는 작동하지 않는 것 같습니다.매 60 초마다 JQuery/Ajax 사용자 메시지 확인

JQuery 

<script type="text/javascript"> 
$(document).ready(function() 
{ 
var check; 
var yourid = <?php echo json_encode($yourid); ?>; 
function checkForMessages() { 
    jQuery.ajax({ 
     type: 'POST', 
     url: 'php/check-messages.php', 
     data: 'id='+ yourid, 
     cache: false, 
     success: function(response){ 
      if(response = 1){ 
       clearInterval(check); 
       alert("You have mail!"); 
      } 
      else {} 
     } 
    }); 
} 
check = setInterval(checkForMessages, 60000); 
}; 
</script> 

Check Messages PHP 

<?php 
include("settings.php"); 

$id= mysqli_real_escape_string($con, $_REQUEST["id"]); 

$check_messages_sql = "SELECT * FROM notes WHERE recipient = '$yourid' AND seen = '0'"; 
$check_messages_res = mysqli_query($con, $check_messages_sql); 
if(mysqli_affected_rows($con)>0){ 
echo "1"; 
} 
?> 

답변

0

당신은 함수의 재귀을하고, 60 초 지연을 추가 할 수 있습니다 :

function checkForMessages() { 

    var dataObj = {}; 
    dataObj['id']= yourid; 

    jQuery.ajax({ 
     type: 'POST', 
     url: 'php/check-messages.php', 
     data: dataObj, 
     cache: false, 
     success: function(response){ 
      if(response == 1){ 
       clearInterval(check); 
       alert("You have mail!"); 
      } 
      else {} 
     } 
    }); 
    setTimeout(
     function() 
     { 
     checkForMessages(); 
     }, 1000); 

} 

이 방법은 함수마다 1000 밀리 재발됩니다 여기에 지금까지 가지고있는 코드입니다.

+0

감사를 if(response == 1)으로 체크하고 아래에 타임 아웃을 사용하는,하지만 여전히 경고 – user3177012

+0

을 생산하지 년대 "만약 (응답 = 1)" 부분, "if (응답 == 1)"이 아니어야합니까? – Theox

+0

예, 이미 변경했습니다. – user3177012

1

어때요? 난 그냥 눈치

function checkForMessages(yourid) { 
    jQuery.ajax({ 
     type: 'POST', 
     url: 'php/check-messages.php', 
     data: 'id='+ yourid, 
     cache: false, 
     success: function(response){ 
      if(response = 1){ 
       clearInterval(check); 
       alert("You have mail!"); 
      } 
      else {} 
     } 
    }); 
} 
check = setInterval(checkForMessages(yourid), 60000); 
0

봅니다 ....

setTimeout(function() {checkForMessages();}, 2000); 
관련 문제