1

Тема: Информация о добавляемом комментарии

Проблема такая:

скрипт strawberry 1.1.1 Я так понял, что в нём комментарии добавляются через ajax, без перезагрузки странички. Но у меня они добавляются почему-то долго - несколько секунд и больше. В итоге огромное количество пользователей жалуется на неработающие комментарии.

Хотелка: справа от кнопочки ДОБАВИТЬ при нажатии сделать надпись "добавляется, ждите. . .", а как добавится, эта надпись меняется на "Комментарий добавлен!".

2

Re: Информация о добавляемом комментарии

Решалка: открой inc/show.comment-form.php и найди (строка 55)

function complete(request){

Замени на

function complete(request){
    $('submit').disabled = false;

Следующее найди (строка 73 или 72, если предыдущее изменение не внёс)

function call_ajax(that){

Замени на

function call_ajax(that){
    $('submit').disabled = true;

В шаблоне формы добавления комментария кнопке (input) у которой type="submit" допиши name="submit", если этого нет.

Теперь кнопка будет выключена во время обработки (пока коммент не добавится или добавлялка не вернёт ошибку).

Признанный мастер чинпоко, а-ай ^_^

Re: Информация о добавляемом комментарии

вЫШЕОПИСАННЫЙ кОД пРЕКРАСНО рАБОТАЕТ... пЕРЕМЕСТИТЕ в гОТОВЫЕ...

сПАСИБО.

Беспокойство - это неправильное употребление воображения.

Re: Информация о добавляемом комментарии

Чем за х roll Заняться нечем? Как это относиться к этой теме и к этому форуму вообще?

Отредактировано Ms.Dred (24 May 2008 02:11:44)

Век живи, день учись. А можно и наоборот.

Re: Информация о добавляемом комментарии

не совсем готовый код. В Mozilla FireFox страница просто обновляется, а комментарий так и не добавляется...
Проблема в куске:

function call_ajax(that){
$('submit').disabled = true; // если эту строку закомментировать - то все снова работает!
  new Ajax.Updater(
      {success: 'commentslist'},
      'system/inc/show.add-comment.php',
      {
          insertion: Insertion.Top,
          onComplete: function(request){complete(request)},
          onFailure: function(request){failure(request)},
          parameters: Form.serialize(that),
          evalScripts: true
      }
  );

И еще мазилла не воспринимает код $('submit').disabled = true; - т.е. Кнопка по прежнему активна.

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Информация о добавляемом комментарии

Это работает только в ИЕ, в Опере и Фоксе страничка просто перегружается и всё.

Re: Информация о добавляемом комментарии

да. я заметил. и проблема в указаном куске... А также на стиль кнопки этот код не действует.
Что примечательно, то это то, что если в указанный кусок вставить любой js скрипт (даже самый простой) то эффект такой же smile

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Информация о добавляемом комментарии

Нашёл способ как блокировать кнопку "Добавить" на момент добавлениея коммента. Всё оказалось просто. Оставляем всё как есть без тех изменений, описаных Лёха zloy и красивый, просто в  файле show.comment-form.php строку 97

<form action="<?=$PHP_SELF; ?>" method="post" name="form" id="comment" onsubmit="call_ajax(this);return false;">

Заменяем на

<form action="<?=$PHP_SELF; ?>" method="post" name="form" id="comment" onsubmit="submit.disabled = true;call_ajax(this);return false;">

Кнопка блокируется и всё работает, правда как её потом разблокировать пока метод не нашёл, в смысле что она становиться активной только после перезагрузки страницы. Проверял это и ФФ, и Опере, и ИЕ, даже проверил Google Crome, тоже работает.

Отредактировано w1a9 (27 Mar 2009 14:53:12)

Re: Информация о добавляемом комментарии

Хорошо! Попробуем!
Кстати, задумал тут опцию недоделанную доделать - использовать аякс в комментариях или нет.

3 недели, 1 день и 21 час спустя:

Недоделанная опция доделана...

3 недели, 1 день и 21 час спустя:

Так же нашлось решение, для разблокировки кнопки после отправки.

Сначала делаем все как у w1a9 в последнем посту, а затем
вставляем в тэг <textarea> (поле ввода текста)

 onclick="submit.disabled = false;"
Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!