AJAX Не могу понять принцип когда надо обновлять весь список

Groove

Новичок
AJAX Не могу понять принцип когда надо обновлять весь список

Есть список комментариев, у каждого есть в скрытом диве форма добавления комментария, добавление происходит при помощи AJAX.
PHP:
<div id="comment_list">
    <div id="comment1">
        тест комментария 1
        <div id="comment_reply_1" style="display:none">
          тут форма добавления комментария в ответ на комментарий 1
        </div>
    </div>
    <div id="comment2">
        тест комментария 2
        <div id="comment_reply_2" style="display:none">
          тут форма добавления комментария в ответ на комментарий 2
        </div>
    </div>
    <div id="comment3">
        тест комментария 3
        <div id="comment_reply_3" style="display:none">
          тут форма добавления комментария в ответ на комментарий 3
        </div>
    </div>
</div>
Проблема: не могу понять каким образом получить добавлен ли комментарий или ошибка, например не заполнено поле или неверно заполнено. Если без проверки - все ясно
Если добавлять просто див после текущего комментария, тогда мы можем упустить то, что за все ответа могут появиться и другие комментарии. решение - обновлять весь список комментариев, но допустим юзер не заполнил текст комментария, или он был не авторизован и ввел имя существующего пользователя, в ответ бессмысленно перегружать весь список.

Т.е. самое простое что приходит на ум - это когда есть ошибка - загружать в "comment_list" только форму с ошибками, а когда все проверки успешные - перегружать весь "comment_list" все существующие комментарии.

Посмотрел как это сделано на хабре сейчас: при попытке отправить пустой комментарий он не добавляет его и не выдает никакого сообщения, что коментарий пуст, он просто перегружает весь список комментариев.

PHP:
var SubmitCommentID = 0;

function SubmitCommentUnlock(request)
 {
  if (s = $('cpb' + SubmitCommentID)) s.disabled = false;
  if (s = $('csb' + SubmitCommentID)) s.disabled = false;
}

function SubmitComment(commentID, f)
 {
  id = SubmitCommentID = commentID > 0 ? commentID : 'f';

  if (s = $('cpb' + id)) s.disabled = true;
  if (s = $('csb' + id)) s.disabled = true;

  new Ajax.Updater('commentsdiv',
                   '/ajax/comment.html?commentID=' + commentID, 
                   {asynchronous:true, 
                    parameters: Form.serialize(f), 
                    onSuccess: SubmitCommentUnlock }); 

  return false;
}
Как можно проверить правильность заполнения и отдать ответ?
Т.е. на этом примере:
PHP:
<div id="comment_list">
    <div id="comment1">
        тест комментария 1
        <div id="comment_reply_1" style="display:none">
          тут форма добавления комментария в ответ на комментарий 1
        </div>
    </div>
когда есть ошибки заполнения - перегружать div id="comment_reply_1", а когда нет ошибок - div id="comment_list" ?
при всем при том, что в js явно указан див принимающий обновление своего содержания
PHP:
  new Ajax.Updater('commentsdiv',


P.S.: решение в лоб по пунктам:
1) обновлять
PHP:
  new Ajax.Updater('comment_reply_1',
2) в случае ошибки выдавать саму форму с ошибками в этот див
3) в случае если ошибок нет серверный скрипт '/ajax/comment.html?commentID=' + commentID
должен вернуть одно слово "update", а в функции, которая навешена на onSuccess проверять что пришло:
PHP:
function SubmitCommentUnlock(request)
 {
if('update'==request.responseText){
  //вот тут обновить ВЕСЬ список комментариев
}
  if (s = $('cpb' + SubmitCommentID)) s.disabled = false;
  if (s = $('csb' + SubmitCommentID)) s.disabled = false;
}
но это как то не правильно же, может быть кто подскажет сам алгоритм?
Заранее благодарен.
 
Сверху