Я хотел бы отправлять данные из mysql db в div каждые x секунд.

At window.setTimeout(update, 60000); - как снова передать в него функцию btnStart.click ??? Не слишком уверен в синтаксисе передачи вызова функции.

Вот код для справки

$('#btnStart').click(function() {

$.ajax({

    url: "ajax.php",

    type: "POST",

    data: 'id=6',

    timeout: 15000,

    beforeSend: function(){ 

    },

    error: function(XMLHttpRequest, textStatus, errorThrown) {
        $("#userstatus").html('Timeout contacting server..');
           window.setTimeout(update, 60000);
    },

    success:  function(output) {                            
        output= jQuery.trim(output);
        $('#userstatus').html(output);

        window.setTimeout(update, 10000);
    },

    complete: function(){

    }

});

<div id="userstatus"></div>

<input type="button" id="btnStart" value="start now">
0
i need help 4 Фев 2010 в 13:28
1
Вам не хватает ' после data='id=6.
 – 
Felix Kling
4 Фев 2010 в 13:30

3 ответа

Лучший ответ
window.setTimeout(function(){$('#btnStart').click();}, 60000);
1
Felix Kling 4 Фев 2010 в 13:40
window.setTimeout(function(){update();}, 10000);

function update()
{
    $("#btnStart").trigger("click");
}

Или вы можете обернуть свой вызов ajax внутри другой функции и вызвать эту функцию в методах нажатия кнопки и установки времени ожидания.

0
rahul 4 Фев 2010 в 13:31

Это будет вызывать нажатие кнопки каждую секунду:

window.setInterval(function() {
    $('#btnStart').trigger('click');
}, 1000);
2
David Hellsing 4 Фев 2010 в 13:32
Единственная проблема в том, что это должно быть запущено после первого щелчка (хорошо, легко решить). Но в зависимости от success или error время между интервалами различается ...
 – 
Felix Kling
4 Фев 2010 в 13:41
SetInterval - хорошая идея, но если на сервере базы данных появилась ошибка, он все равно будет вызывать ajax каждые 30 секунд. Возможно, setTimeout записан внутри ошибки btnStart: более длительный тайм-аут, успех: более короткий тайм-аут, было бы лучше.
 – 
i need help
4 Фев 2010 в 15:49