2013-06-29 2 views
1

У меня есть таблица в моей базе данных. Я использую цикл while, чтобы пересечь их. и сделайте HTML-div с данными, полученными от вас. Я использовал LIMIT 10, потому что записи в постах будут постоянно меняются, как пользователи будут держать вставки сообщения в таблицуКак вставить кусок кода каждый раз, когда мои циклы извлекают некоторые данные из моей базы данных

$get_ids=mysql_query("SELECT * FROM posts ORDER BY id LIMIT 10"); 
while($row = mysql_fetch_array($get_ids)){ 
      $sm=$row['message']; 
      echo "<div>".$sm"</div>"; 
} 

Что я хочу знать, как я могу использовать JQuery, чтобы сделать этот скрипт вставить эти 10 дивы в мой DOM каждый 1 секунда или около того. Помогите пожалуйста СРОЧНО !!!!

+0

Read http://api.jquery.com/jQuery.ajax/ и, возможно, HTTP: // api.jquery.com/html/ тоже. Здесь представлена ​​хорошая документация и множество примеров. – Bjoern

ответ

1

Попробуйте Google для некоторых JQuery & примеры PHP веб-сервиса. В принципе, вы должны сделать что-то вроде этого:

//Javascript function which fetches the single data as J.D.Smith suggested 
function getHtml() 
{ 
    $.get({ 
     'url': 'Address of your php webservice', 
     'success': function(data) { 
      $("#content").html($("#content").html() + data); //Append html to your page 
     } 
    }); 
} 

//Call the function every 10 sec, place it in $(document).ready() or anything else you use 
window.setTimeout(function() { 
     getHtml(); 
    }, 10000); 

Этот код более иллюстративным образец, чем рабочий код

1

Вы бы поставить этот код в отдельный файл (например: divfill.php), а затем использовать что-то вроде этого

$.get({ 
    'url': 'divfill.php', 
    'success': function(data) { 
     $("#content").html($("#content").html() + data); 
    } 
}); 
+0

PHP-код запускается только один раз: когда сервер отправляет страницу клиенту. Теоретически вы можете сделать так, чтобы страница постоянно загружалась. Однако вам будет запрещено добавлять код в нижнюю часть вашего HTML-файла. Это работает? Да, но не очень хорошо. Я настоятельно рекомендую не пытаться что-то подобное, а вместо этого использовать AJAX. –

+0

Хорошо, я намерен использовать ajax. Это то, что я прошу в основном. Поскольку im не является jquery-гуру, можете ли вы дать подсказку или короткий фрагмент о том, как это должно быть сделано? –

+0

Поместите мой выше код в функцию (и замените #content на любой идентификатор, который вам нужен). Затем используйте [window.setInterval] (https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval) для запуска функции каждые 1 секунду. –

0

В моем случае, я добавил следующий метод в моем файле JS,

//call the target function after 250 ms 
function async(targetFn, callback) { 
    setTimeout(function() { 
     targetFn(); 
     callback(); 
    }, 250); 
} 

И, я называю эту функцию, как показано ниже,

async(BindValuesInLookup, function() { 
     BuildGrid() 
     GetInfo(); 
    }); 

BindValuesInLookup является целевой функцией. Он срабатывает после 250 мс. Как только это будет сделано, будут выполняться функции обратного вызова. Таким образом, вы можете использовать эту функцию в цикле и увеличить тайм-аут до 1000 (1 с).

Спасибо, Vim

+0

Не могли бы вы объяснить всю функцию jquery –

Смежные вопросы