2014-12-19 6 views
0

У меня есть следующий код, который проходит каждые несколько секунд, чтобы захватить данные из файла PHP:Ajax длинный опрос разместить данные в PHP

<script>    
$(document).ready(function(){ 
    function doPoll(){ 
     var cid= <?php echo $user2 ?>; 
     $.post('chatfunction.php') .done(function(data) { /* process */ 
      document.getElementById("#chatarea").innerHTML = data; 
     }) .always(function() { 
      setTimeout(doPoll, 5000); 
     }); 
    } 
}); 
</script> 

Это не обычный формат Аякса, однако, мне нужно опубликовать переменная в файл php также, может я знаю, как я могу интегрировать это в этот кусок кода?

Спасибо!

+0

использования (http://api.jquery.com/jQuery.post/) –

+0

ах-ха спасибо [** сообщение **.]! Сообщение jQuery похоже мало отличается от версии ajax. –

+0

нет смысла создавать сообщение, если вы не пришлете никаких данных – charlietfl

ответ

-1

и вы должны поставить function doPoll() вне document.ready

Он хотел это:

$document.ready(function() { 
    setInterval(doPoll(), 5000); // It will run doPoll() function every 5 seconds 
}); 


function doPoll(){ 
    // and the rest of the code 
} 

Это правильный способ вызова функции или вызвать ваш запрос пост на doPoll() функции.

И вы также можете сделать POST запрос с помощью AJAX

$.ajax({ 
    type: "POST", 
    url: "YOU_URL_HERE", // your URL 
    data: {param1:"params1", params2:"params2", params3:"params3"}, // parameters you need to pass 
    success: function(){ 
    alert("SUCCESS"); // If success 
    }, 
    error: function() { 
    alert("ERROR"); // If error 
} 
}); 

EDIT: Добавлена ​​setInterval, так что doPoll() функция будет выполняться каждые 5 секунд

+0

вы говорите, что это нужно делать за пределами' document.ready', но не дают причин, почему – charlietfl

+0

Прошу прощения, я просто отредактировал свой ответ. – Lian

+0

hi @Newbie, я действительно смотрел сообщение ajax, но не знаю, как установить таймаут и сделать его таким, чтобы он работал непрерывно независимо от того, есть ли ошибка или нет. –

0

не знаете, как установить тайм-аут и сделать его таким, чтобы он работал непрерывно, независимо от того, есть ли ошибка или нет.

Для этого вам необходимо setinterval():

$document.ready(function() { 
    setinterval(function(){ doPoll() }, 3000); 
}); 
Смежные вопросы