AJAX autorefresh делает только последнюю запись видимой! - PullRequest
2 голосов
/ 06 мая 2011

Я новичок в PHP. Я хотел создать форум, где пользователи могут задавать вопросы. Я использую ajax для автоматического обновления страницы. Но это создает некоторые проблемы ...

Во-первых, если я сделаю тот конкретный div, где будет отображаться самый последний вопрос, обновится только последний вопрос. позвольте мне прояснить это с бывшим:

  1. Пользователь А открывает форум
  2. Он получает вопросы qlatest, q1, q2, q3. Где div, связывающий qlatest, обновляется каждые 1 сек.
  3. Пользователь B задает вопрос qlatest2
  4. qlatest заменяется на qlatest2!

Теперь я должен сделать весь div, объединяющий все вопросы, обновить?

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Если я правильно понимаю, вы хотите создать что-то вроде фида Twitter, где последний элемент отображается поверх друг друга.

Причина обновления всего DIV заключается в том, что вы переписываете весь внутренний HTMLэтого DIV.Чтобы избежать этого, используйте .appendChild () и запрограммируйте свой файл обратного вызова PHP, чтобы извлекать только последнюю запись из базы данных.

http://www.ezineasp.net/post/Javascript-Append-Div-Contents.aspx

JQuery также имеет несколько очень полезных функций, добавляющих потомков.Я предлагаю использовать библиотеку Javascript, если вы новичок в вызовах AJAX.

1 голос
/ 06 мая 2011

Вам необходимо:

  1. Добавить источник данных, который возвращает последний заданный вопрос.
  2. Вызывать этот источник данных с постоянным интервалом и загружать возвращенный вопрос в div ..

Самое простое объяснение - это следующее решение: написать код JavaScript, который использует встроенную функцию JS setInterval () для загрузки, например.скрипт last_question.php в div.Вы можете сделать это, например.используя функцию load () jQuery, которая может выглядеть, например.вот так (при условии, что у вашего div есть идентификатор «last_question»):

jQuery('#last_question').load('last_question.php');

Конечно, это можно оптимизировать.Для этого прочитайте о:

  1. Длинный опрос
  2. Формат JSON
  3. jQuery.requestJSON () Функция jQuery
  4. Возможно, некоторые эффекты нужно сделатьизменение вопроса более плавное (например, выдвинуть и сдвинуть)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...