2014-02-13 3 views
0

работает над системой комментариев с использованием PHP.Комментируя система - Показывает опубликованный комментарий без перезагрузки страницы

Все работает, вставка, валидация, а также вызов ajax.

В настоящее время я делаю .load() на контейнере, содержащем содержимое страницы.

Однако это вызывает проблемы при попытке отправить комментарии еще раз. Javascript не работает, некоторые функции javascript, связанные с комментариями, также не работают и мало что могут сделать.

Как я должен иметь дело с комментариями, каждый раз, когда пользователь отправляет сообщение.

Как на facebook, например, вы публикуете комментарий, а новый - только под последним.

Единственное, что я могу думать о том, что я использую .append() и добавляю новый комментарий к списку.

На моей странице PHP я могу установить возврат JSON имени пользователя, комментария, изображения профиля пользователя и т. Д., А затем добавить все эти данные обратно?

В противном случае существует лучший способ просто «перезагрузить» контейнер div после успешного вызова ajax?

Спасибо, что у меня есть работы ... но я хочу учиться вещам ПРАВИЛЬНЫМ способом.

Крейг.

+1

Где код? – Subin

+0

Является ли javascript, который вы пытаетесь запустить, загружается '.load()'? Если так, javascript, набранный вашим скриптом, не привязан к странице. – Newbi3

ответ

0

Вы можете использовать $ .ajax для загрузки новых комментариев и использования .append() или prepend() для вставки новых комментариев в контейнер. Если вы переносите вызов в функцию, вы можете вызывать эту функцию снова и снова (например, каждые 2 секунды) для проверки новых комментариев.

Если я правильно помню .load() будет выполняться только после того, как элемент будет готов после обновления браузера.

Что не работает? Помните, что события и данные должны быть связаны после успешного вызова AJAX. Если вы привязываете события к ссылкам при загрузке страницы, они, очевидно, все еще действуют. Но если вы вставляете ссылку позже, у нее нет никаких событий.

Что я обычно делаю что-то вроде этого:

$.ajax({ 
    url: 'ajax.php', 
    data: { 'parameters': 'yada yada' }, 
    dataType: 'json', 
    success: function(data) { 
     $('.links').unbind().click(function() { alert('hello!'); }); 
    } 
}); 

Причина .unbind() является то, что вы в противном случае связывать несколько событий на существующих связей - и вы не хотите, чтобы; -)

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