Как вывести форму добавления комментария в AJAX-окне?

По целому ряду причин возникла необходимость вывода формы добавления комментария в AJAX-окне. Порылся по интернету, нашел кучу вариантов вывода в окошке добавления различных материалов, а вот с комментариями для юкоза не нашел ничего

Как вывести форму добавления комментария в AJAX-окне?

» » Сообщение:

Доброго времени суток!
По целому ряду причин возникла необходимость вывода формы добавления комментария в AJAX-окне. Порылся по интернету, нашел кучу вариантов вывода в окошке добавления различных материалов, а вот с комментариями для юкоза не нашел ничего. Точнее, нашел единственную ссылку, но этот способ как-то странно работает.
В панели управления, на странице формы добавления комментариев заключаю весь код в дивный блок и дописываю такой код:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="wind_add_com()">Добавить комментарий</a>
<script>
function wind_add_com(){
_uWnd.alert($("#com_add_form").html(),'Добавление комментария',{name:'add_com', align:'left', w:700, h:600})
};
</script>
<div id="com_add_form" style="display:none;">
ВЕСЬ КОД UCOZ-а
</div>

Как бы... выводит форму в окошке, но... там выводится форма в форме и ничего не работает...
Если на код в css и html я уже не смотрю, как баран на новые ворота, то со скриптами беда. Что нужно переделать в коде, чтобы заработало? Или этот путь вообще тупиковый и все нужно делать иначе?


Re: Как вывести форму добавления комментария в AJAX-окне?

Admin » » Сообщение:

vospa писал(а) › 12 ноя 2015, 13:18:Что нужно переделать в коде, чтобы заработало? Или этот путь вообще тупиковый и все нужно делать иначе?

Да нет, путь не тупиковый - есть варианты, и представленный код не самый худший)
Чуть позже выложу работающий вариант.

Заменить

Код: Выделить всё Развернуть
$COM_ADD_FORM$

на

Код: Выделить всё Развернуть
<a href="javascript//" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left'},$('#com_add_form').html().replace('document.write',''));return false;">Добавить комментарий</a>
<div id="com_add_form" style="display:none;">$COM_ADD_FORM$</div>

И будет вот так: http://likbezz.ucoz.ru/news/2003-12-05-315

kak-vyvesti-formu-dobavleniya-kommentariya-v-ajax-okne.png

---

ps
Сайт likbezz.ucoz.ru архивный, последующая помощь оказывается тут: viewforum.php?f=56, аккаунты перенесены, то бишь - логин,пароль - ваши текущие здесь.




Re: Как вывести форму добавления комментария в AJAX-окне?

vospa » » Сообщение:

Admin писал(а) › 12 ноя 2015, 13:24:осталось только придумать, как закрывать окошко после добавления комментария..)

Очень надеюсь, что с этим справлюсь самостоятельно. Нечто похожее уже делал.
Теперь буду пытаться сообразить почему все заработало biggrin

Добавлено (02.11.2015, 22:28)
---------------------------------------------
Мда... я идиот... Сначала не заработал и Ваш вариант. Все так же, форма в форме. Потом, наконец таки дошло, и отключил визуальный редактор комментариев, и... заработало biggrin Больше того, заработал даже исходный код, с которым я мучался


Re: Как вывести форму добавления комментария в AJAX-окне?

Admin » » Сообщение:

vospa писал(а) › 12 ноя 2015, 13:25:Больше того, заработал даже исходный код, с которым я мучался

У меня не работало, пока не убрал document.write .. ни ваш ни мой вариант..)

vospa писал(а) › 12 ноя 2015, 13:25:Потом, наконец таки дошло, и отключил визуальный редактор комментариев, и... заработало
Код: Выделить всё Развернуть
<a href="javascript//" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left',oncontent:function(){$('#ajax_add_form').html($('#com_add_form').html().replace('document.write',''));$('#ajax_add_form').find('.wysibb-toolbar:first').remove()}},'<div id=\'ajax_add_form\'></div>');return false;">Добавить комментарий</a>
Как вывести форму добавления комментария в AJAX-окне?

или вот так:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left'},$('#com_add_form').find('.wysibb-toolbar:first').remove().end().html().replace('document.write',''));return false;">Добавить комментарий</a>

Re: Как вывести форму добавления комментария в AJAX-окне?

vospa » » Сообщение:

Сорри, что не ответил сразу, отвлекся на пару дней.
Хмм... последние варианты подразумевают, что и визуальный редактор будет правильно отображаться? Попробовал, но... все равно получается окно в окне. Единственно, теперь стала отображаться только одна панель инструментов, а вот текстовых полей все равно два... Впрочем, не принципиально, без визуального же работает. Правда, все равно не все. В частности, не работают юкозовские кнопки подписки и анонимности.
Я ведь связался с выносом формы в окно только потому, что с ней у меня совершенно не дружит установленный у меня скролл бар. Да и вообще, еле удалось помирить версию jquery c еще двумя плагинами, скролл баром и флип галереей. Наверное, заставить их дружить друг с другом можно, включая и форму добавления комментариев, но это уже значительно превосходит мои текущие познания. А просить разбираться постороннего человека в моем нагромождении кода (уж как смог biggrin ), мягко говоря, неприлично.
В конечном итоге, отказался я от аякс окна и сделал все на html и css. Но в любом случае, большое спасибо. Я уже знаю, где Вашим кодом воспользуюсь smile А с текущей задачей я пока справился таким вот образом:
My WebPage


Re: Как вывести форму добавления комментария в AJAX-окне?

Admin » » Сообщение:

vospa писал(а) › 12 ноя 2015, 13:28:Хмм... последние варианты подразумевают, что и визуальный редактор будет правильно отображаться?

Теоретически..

vospa писал(а) › 12 ноя 2015, 13:28:Попробовал, но... все равно получается окно в окне. Единственно, теперь стала отображаться только одна панель инструментов, а вот текстовых полей все равно два...

Значит нужно удалить еще и лишнее поле..

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

vospa писал(а) › 12 ноя 2015, 13:28:Я ведь связался с выносом формы в окно только потому, что с ней у меня совершенно не дружит установленный у меня скролл бар.

- Это тот, что прокручивает картинки на заднем плане?

vospa писал(а) › 12 ноя 2015, 13:28:Да и вообще, еле удалось помирить версию jquery c еще двумя плагинами, скролл баром и флип галереей.

Ваш текущий вариант - с позиционированием формы - хорошая альтернатива аякс окошку.

ps
Замечен небольшой косяк (мозилла 42) - при открытии формы нельзя выделить ничего из самой новости, ибо форма выше по индексу и перекрывает новость. Не оч. удобно, если хочешь процитировать что-то.

Вложения
Зарегистрируйтесь, чтобы скачать вложения.

Re: Как вывести форму добавления комментария в AJAX-окне?

vospa » » Сообщение:

Admin писал(а) › 12 ноя 2015, 13:31:- Это тот, что прокручивает картинки на заднем плане?

Нет, это просто нештатный скролл бар. В приведенной ссылке просто новость короткая и его не видно. Так вот, если форма оказывается внутри блока со скроллом, то страница не отображается вообще. Мелькнет на секунду при обновлениии, и все, дальше белый экран. Вот из-за этого я и решил вынести форму в отдельное окно. А вообще, у меня были конфликты с выбранной версией библиотеки jquery, вот этим самым скролл баром и плагином прокручивания картинок на заднем плане. До смешного доходило. На версиях jquery до 1.5.2 работает ПОЧТИ все, но все равно приходится изворачиваться с мелкими косяками. До версии 1.9 не работает скролл бар на некоторых страницах. А начиная с 1.9.1 скролл бар работает как часы, зато не работает другой плагин biggrin Вот и пришлось изворачиваться, сообразно своим силам.

Admin писал(а) › 12 ноя 2015, 13:31:Замечен небольшой косяк

Ага. Там еще есть мелкие недоработки, так что я пока в процессе


Re: Как вывести форму добавления комментария в AJAX-окне?

Admin » » Сообщение:

vospa писал(а) › 12 ноя 2015, 13:32:Нет, это просто нештатный скролл бар. В приведенной ссылке просто новость короткая и его не видно. Так вот, если форма оказывается внутри блока со скроллом, то страница не отображается вообще. Мелькнет на секунду при обновлениии, и все, дальше белый экран.

Это потому что в форме есть document.write, а скроллбар формируется перемещением контента в блоки со скроллом .. ну и, соответственно, при перемещении выполняется document.write, и наблюдается белый экран.
Для решения проблемы нужно, либо исключить перемещение, то бишь формировать блоки руками в шаблоне, либо удалить из перемещаемого кода такие вещи, как document.write, типа как сделано в, предоставленных выше, фрагментах.

vospa писал(а) › 12 ноя 2015, 13:32:На версиях jquery до 1.5.2 работает ПОЧТИ все, но все равно приходится изворачиваться с мелкими косяками. До версии 1.9 не работает скролл бар на некоторых страницах. А начиная с 1.9.1 скролл бар работает как часы, зато не работает другой плагин

Ну, данный вопрос навскидку не решишь - нужно смотреть дебаг - какие конкретно ошибки возникают и корректировать скрипты, в зависимости от ситуации.
Я не встречался с ситуациями, которые нельзя, так или иначе, разрешить.

vospa писал(а) › 12 ноя 2015, 13:32:Там еще есть мелкие недоработки, так что я пока в процессе

Ну .. “процесс” - это вечное ))





Похожие темыКомментарии ПросмотрыПоследнее сообщение
131426Re: Вывести другой вид материалов д...
Сообщение от: Admin
1265Re: Как вывести свою картинку к каж...
Сообщение от: Admin
068Как вывести на экран все свойства о...
Сообщение от: Admin
1362Re: Как вывести категории ИМ на все...
Сообщение от: Admin
0463Как вывести все смайлы в окошке? ph...
Сообщение от: Admin