Форма добавления комментария в модальном окне (DLE)

D
На сайте с 15.07.2011
Offline
41
2672

Всем привет! Столкнулся с такой проблемой:

Хочу сделать что бы добавление комментариев к статье происходило в модальном окне при нажатии на соответствующую кнопку.

В шаблон fullstory в самый низ кинул такой код:


<script type="text/javascript">
function addnewcom() {$(function(){$('#comments').dialog({autoOpen: true,show: 'fade',hide: 'fade',width: 500,height: 300})})}
</script>

<div id="comments">
Форма добавления комментария.
</div>

<a href="#comments" onclick="addnewcom(); return false;">Оставить отзыв</a>

Но после написания комментария и нажатия на кнопку "Добавить комментарий" он добавляется 2 раза.

Если же добавлять комментарий по стандарту - всё ок.

Подскажите, пожалуйста, как исправить эту проблему?

C
На сайте с 04.02.2005
Offline
246
#1

а страница при этом обновляется?

D
На сайте с 15.07.2011
Offline
41
#2
Chukcha:
а страница при этом обновляется?

у меня DLE 9.7 - там добавление комментариев происходит, не знаю как правильно написать, по принципу "AJAX". Страница не обновляется, а просто появляется новый комментарий сдвигая предыдущий ниже. А в случае с модальным окном он сдвигается, закрывается и снова сдвигается. По ощущениям могу сказать что скорее всего это и есть обновление страницы

C
На сайте с 04.02.2005
Offline
246
#3

адрес пациента.

Если два раза добавляется, то возможно, что идет отправка дважды сообщения.

1 - аякс

2 - от формы

Нужно смотреть ...

S
На сайте с 03.01.2012
Offline
26
#4
darwin:

Но после написания комментария и нажатия на кнопку "Добавить комментарий" он добавляется 2 раза.

На прошлой неделе с такой же проблемой столкнулся. В addcomments.tpl заменил кнопку:

<button type="submit" name="submit" class="fbutton">Добавить комментарий</button>

на такую:

<button onclick="doAddComments();return false;" type="submit" name="submit" class="fbutton">Добавить комментарий</button>

В итоге все нормально заработало.

D
На сайте с 15.07.2011
Offline
41
#5
Sisyphus:
На прошлой неделе с такой же проблемой столкнулся. В addcomments.tpl заменил кнопку:
<button type="submit" name="submit" class="fbutton">Добавить комментарий</button>

на такую:
<button onclick="doAddComments();return false;" type="submit" name="submit" class="fbutton">Добавить комментарий</button>

В итоге все нормально заработало.

оо спасибо! Это и вправду помогло! Спасибо большое за помощь =))

Не знаешь случаем как еще сделать вывод окна при нажатии на кнопку "цитировать" ?

C
На сайте с 04.02.2005
Offline
246
#6
Sisyphus:
На прошлой неделе с такой же проблемой столкнулся. В addcomments.tpl заменил кнопку:
<button type="submit" name="submit" class="fbutton">Добавить комментарий</button>

на такую:
<button onclick="doAddComments();return false;" type="submit" name="submit" class="fbutton">Добавить комментарий</button>

В итоге все нормально заработало.

Это, конечно, выход.

Но прАвильнее - отредактировать функции по событию onsubmit

D
На сайте с 15.07.2011
Offline
41
#7
Chukcha:
Это, конечно, выход.
Но прАвильнее - отредактировать функции по событию onsubmit

Ну пользуюсь тем что есть... я не знаю, что и где править. тут такое дело, что уж раз помогло то и на этом спасибо )

S
На сайте с 03.01.2012
Offline
26
#8
darwin:
Не знаешь случаем как еще сделать вывод окна при нажатии на кнопку "цитировать" ?

Надо повесить второй onclick ( в твоем случае addnewcom(); ) на кнопку цитировать:

открываешь \engine\classes\comments.class.php - ищешь 181 строку:

$tpl->set( '[fast]', "<a onmouseover=\"dle_copy_quote('" . str_replace( array (" ", "***039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "');\" href=\"#\" onclick=\"dle_ins('" . str_replace( array (" ", "***039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "'); return false;\">" );

и добавляешь туда свой onclick, т.е. получается:

$tpl->set( '[fast]', "<a onmouseover=\"dle_copy_quote('" . str_replace( array (" ", "***039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "');\" href=\"#\" onclick=\"dle_ins('" . str_replace( array (" ", "***039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "'); addnewcom(); return false;\">" );

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий