Форма комментирования на AJAX

ajaxform Форма комментирования на AJAX За все время мы обратились уже ко многим областям веб-разработки по отдельности. Сегодня начнем их совмещать. В этой статье, я приведу пример того, как можно совместить знание ajax и wordpress`а, и получить в результате форму комментирования для вашего блога на ajax.В качестве инструментов мне понадобиться только библиотека JQuery и плагин к ней для работы с формами.

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

Сперва нужно создать каталог с именем js внутри папки с темой. В него положить два файла:

  1. Файл библиотеки jquery.js (http://jquery.com)
  2. Плагин jquery для работы с формами. (http://malsup.com/jquery/form/)

Теперь подключим эти два файла внутри шаблона header.php нашей темы. Для этого добавим туда пару строк:

<script src="<?php bloginfo('template_directory'); ?>/js/jquery.js" type="text/javascript"></script>
<script src="<?php bloginfo('template_directory'); ?>/js/form.js" type="text/javascript"></script>


Для работы плагина Form необходимо знать id формы, которая будет отправлять на сервер (в нашем случае – это форма комментирования).

Саму форму можно найти внутри шаблона comments.php. Вот так у меня начинается эта форма:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

Запомним этот id, он нам еще пригодится.
Теперь, после того как мы подключили jquery и плагин, и узнали id формы, осталось только написать небольшую функцию для обработки нажатия на кнопку submit нашей формы.

<script>
function CommentPost() {
	var options = {
		success: function() {
			$('#form_message').show();
		}
	};
	$('#commentform').ajaxSubmit(options);

	return false;
}
</script>

Этот код можно поместить внутрь шаблона comments.php.
Здесь строка

    $(‘#form_message’).show();

Выполнится только в случае успешного выполнения запроса. У меня она будет показывать сообщение. Кстати, его тоже нужно поместить внутрь шаблона comments.php.
Я поставил его перед формой:

<div id="form_message" style="display:none"><h3>Спасибо за комментарий!</h3></div>

И не забываем про обработчик кнопки submit у этой формы:

<input name="submit" onclick="CommentPost(); return false;" id="submit" tabindex="5" value="Комментировать" type="submit" />

Ну, вот и все. Результат всего этого можете наблюдать у формы комментирования на этом блоге. icon smile Форма комментирования на AJAX



Теги: ,


Читайте также:



131 Ответов на “Форма комментирования на AJAX”

  1. Skill00
    Август 12th, 2008

    О! Я первый посмотрю как это выглядит :)

  2. novice
    Август 12th, 2008

    :) На днях попробую усовершенствовать немного эту форму на блоге.

  3. Тикизо
    Август 13th, 2008

    Ща попробуем на денвере.

  4. ruslan
    Сентябрь 17th, 2008

    все ok

  5. Just
    Октябрь 15th, 2008

    Проверка! :)

  6. Red
    Октябрь 31st, 2008

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

  7. cryptus
    Октябрь 31st, 2008

    Если в wordpress, то в месте, где надо обрезать текст (указать анонс), нужно поставить специальный тег <!–more–>

  8. Red
    Ноябрь 1st, 2008

    А реально сделать так чтобы было 2 редактора, в один пишеш краткий текст, а во второй полный ?

  9. novice
    Ноябрь 1st, 2008

    Насчет редактора не скажу точно – там больно глубокие изменения надо делать. А если без редактора обойтись, то можно анонс выделять в дополнительное поле к посту. На главной странице выводить анонс только, а при нажатии на линке показывать пост сам. Про дополнительные поля можешь здесь почитать : http://i-novice.net/izmenyaem-wordpress-temu/

  10. Вальдемар
    Ноябрь 26th, 2008

    А можно ли как то приспособить данный плагин для отправки сообщения на заданный email? естественно, без перезагрузки страницы (говорю о форме обратной связи)…

  11. cryptus
    Ноябрь 26th, 2008

    Можно. Если хотите сделать из формы комментирования wordpress форму обратной связи такую, то надо менять ядро блога.

    А если просто на каком-то из Ваших сайтов, то просто в action form`ы, которая будет отправляться укажите нужный php-файл. В остальном подключение плагина не изменится почти.

  12. Вальдемар
    Ноябрь 27th, 2008

    >Можно.
    спасибо, разобрался

  13. lolol)))
    Декабрь 24th, 2008

    лол! класный скрипт

  14. Denis
    Январь 11th, 2009

    Тестик небольшой:)

  15. Проверка
    Январь 18th, 2009

    Текст проверки… Интересно все же :)

  16. Проверяющуй
    Январь 20th, 2009

    Интересно же )

  17. Vist
    Январь 22nd, 2009

    Мне тоже интересно

  18. Алекс
    Январь 23rd, 2009

    КРУТА

  19. прикольно
    Январь 24th, 2009

    вау

  20. Тестим)
    Январь 26th, 2009

    aaaaa

  21. Вася
    Февраль 26th, 2009

    спс

  22. Алексей
    Апрель 20th, 2009

    Спасибо!

  23. Максим
    Апрель 25th, 2009

    Спасибо!

  24. Dmitry
    Май 18th, 2009

    Тест)

  25. qwerty
    Май 19th, 2009

    up!

  26. Tuk
    Май 22nd, 2009

    Интересный плагин, обязательно попробую…

  27. vd
    Июль 16th, 2009

    И как же я могу посмотреть пример, если включена премодерация????

  28. Alexx
    Август 21st, 2009

    :) дурацкий вопрос, но я правда не догоняю.Подскажите пожаста, как вместо благодарственной надписи вывести сам комментарий без перезагрузки страницы ?

  29. Алекс
    Декабрь 24th, 2009

    Блин, кучу плагинов перепробовал. Может это поможет

  30. Вася
    Февраль 7th, 2010

    Проверка!

  31. 123
    Февраль 11th, 2010

    dssd

  32. вова
    Февраль 12th, 2010

    пробуемс

  33. вова
    Февраль 12th, 2010

    пробуYour text to link…

    емс

  34. Имя
    Февраль 19th, 2010

    Забыл

  35. прдгшршгщ
    Февраль 19th, 2010

    дгпщгп

  36. kkgjg
    Февраль 28th, 2010

    Test )

  37. Никита
    Март 15th, 2010

    вапвы

  38. Стас
    Март 19th, 2010

    тест

  39. тестер
    Март 28th, 2010

    тестинг

  40. тестер
    Апрель 15th, 2010

    тестgh

  41. rt
    Апрель 20th, 2010

    r

  42. 354
    Апрель 20th, 2010

    4545

  43. ыыыы
    Апрель 24th, 2010

    тест

  44. ыыыыы
    Апрель 24th, 2010

    тест ыыыыыы

  45. Алекс
    Апрель 27th, 2010

    Проверка аякса…

  46. ромс
    Июнь 18th, 2010

    Проверка аякса…

  47. how
    Июнь 21st, 2010

    test ajax

  48. Малина
    Июнь 24th, 2010

    ЖОСКО!

  49. deny
    Июнь 30th, 2010

    тест

  50. Ksana
    Июль 4th, 2010

    Здорово.

  51. Ksana
    Июль 4th, 2010

    Непонятно, как это действует.

  52. Ksana
    Июль 4th, 2010

    Непонятно, как это действует.тест тест

  53. patrik
    Июль 11th, 2010

    ну и я поспамлю)

  54. я
    Август 7th, 2010

    проба

  55. Дмитрий
    Август 14th, 2010

    Тест комментария

  56. masha
    Август 18th, 2010

    thanks a lot!

  57. уке
    Август 21st, 2010

    tesr

  58. asd
    Август 21st, 2010

    test

  59. s
    Сентябрь 2nd, 2010

    test

  60. RepA
    Сентябрь 13th, 2010

    хм… не ужели работает?

  61. Vova
    Сентябрь 17th, 2010

    спасибо!

  62. долина
    Сентябрь 22nd, 2010

    Нормально

  63. Dimon
    Сентябрь 24th, 2010

    полезная статья!)

  64. ОЛЕГ ВИКТОРОВИЧ
    Октябрь 21st, 2010

    ПРОВЕРКО

  65. 345345
    Ноябрь 2nd, 2010

    фцуву

  66. Kostromi4
    Ноябрь 23rd, 2010

    testt

  67. Сергей
    Ноябрь 23rd, 2010

    Проверка

  68. oleg
    Ноябрь 23rd, 2010

    Тесблин!

  69. 1
    Ноябрь 27th, 2010

    Your text to link…

  70. помощник
    Декабрь 7th, 2010

    sss

  71. Макс
    Декабрь 14th, 2010

    бла бла бла

  72. Макс
    Декабрь 14th, 2010

    Хз хз… Простенько очень)) А данные в форме зачем оставлять после отправки?

  73. sad
    Декабрь 15th, 2010

    юдл

  74. Chupik
    Декабрь 26th, 2010

    Ajax таки замечательная штука, но учить ради него javascript – лень. А так, можно вообще ко всему wordpress’у прикрутить ajax, пример тому – самый популярный вордпресовский шаблон с функцией миниблога.

  75. rash
    Декабрь 27th, 2010

    Раз два три
    четырепять ишесть
    тыц тыцууууу..!!

  76. mikesoup
    Декабрь 27th, 2010

    круто

  77. onjee
    Декабрь 28th, 2010

    Спасибо мэн). Сегодня пол дня потратил на то чтоб найти реализацию без плагина))) Респект от onjee

  78. 123
    Январь 5th, 2011

    test

  79. onjee
    Январь 15th, 2011

    Блин… а чо поле комментария не очищается и коммент виден только после того как страницу перезагрузить?

  80. яffff
    Январь 18th, 2011

    робит?fff

  81. авва
    Январь 25th, 2011

    test

  82. Олег
    Февраль 8th, 2011

    А ну ка )

  83. Руслан Сафин
    Март 8th, 2011

    Тестовый комментарий.

  84. вася
    Март 21st, 2011

    test

  85. Павел
    Март 24th, 2011

    Тестим
    Тест прошел успешно!

  86. xhugo
    Март 26th, 2011

    пробуем

  87. Test
    Апрель 6th, 2011

    Test

  88. aasd
    Апрель 13th, 2011

    asdasdsa

  89. akkad
    Апрель 19th, 2011

    Это нифига не работает. Всё сделал как написано – подключил скрипты, прописал onclick и т.д., а при отправке страница всё равно перегружается, и в статусбаре в ИЕ пояляется ошибка “object doesn’t support this method”. У вас не немного не такой код, как в примере. И что-то здесь недосказано…

  90. Андрей
    Апрель 22nd, 2011

    Проверка

  91. Мишаня
    Апрель 25th, 2011

    Тест!!! Если норм, заберу себе)

  92. Grawl
    Май 14th, 2011

    Не работает. Жаль. Хотя форма ввода симпатичная (Я про WySiWyG). Помню, игрался с ней тоже.

  93. mixsd
    Июнь 13th, 2011

    Очень интересно нужно попробовать))))

  94. тест
    Июнь 26th, 2011

    klnmpsofwef

  95. Алекс
    Июнь 29th, 2011

    Тестируем Аякс!

  96. Андрей
    Июль 8th, 2011

    Тестируем Аякс!

  97. deSiter
    Июль 9th, 2011

    Попробуем…

  98. deSiter
    Июль 9th, 2011

    Ха-ха, очень смешно(

  99. test
    Август 4th, 2011

    test comment

  100. SkaN
    Август 19th, 2011

    ну и я внесу свою лепту в проверки

  101. Имя
    Август 31st, 2011

    test

  102. лифт
    Август 31st, 2011

    test

  103. лифт
    Август 31st, 2011

    testing

  104. ritman
    Август 31st, 2011

    Скажите, пожалуйста.
    А можно ли еще сделать кнопку, которая на ajax будет подгружать новые комментарии без перезагрузки страницы? Что-то типа «обновить комментарии».

  105. 453
    Сентябрь 3rd, 2011

    999999

  106. саша
    Сентябрь 4th, 2011

    test

  107. жорж
    Сентябрь 6th, 2011

    тест

  108. jorik
    Октябрь 13th, 2011

    тест 3456й

  109. прпмарпр
    Октябрь 15th, 2011

    nvhvhvjhvjv

  110. www
    Декабрь 2nd, 2011

    дурацкий вопрос, но я правда не догоняю.Подскажите пожаста, как вместо благодарственной надписи вывести сам комментарий без перезагрузки страницы

  111. Денис
    Декабрь 5th, 2011

    test

  112. Yeva
    Декабрь 13th, 2011

    Подскажите, пожалуйста, как через ajax можно сделать обновление произвольных полей записи при клике на объекте внутри записи?

  113. df
    Декабрь 19th, 2011

    df

  114. выва
    Январь 17th, 2012

    пвпвап

  115. ggg
    Январь 31st, 2012

    test

  116. олег
    Февраль 3rd, 2012

    У меня все равно перезагружается страничка :-(

  117. Otshelnik-fm
    Февраль 11th, 2012

    проверю

  118. Otshelnik-fm
    Февраль 11th, 2012

    проверю. еще раз

  119. 1
    Февраль 13th, 2012

    123123123

  120. sdfsdf
    Февраль 16th, 2012

    Антиспам: Сколько будет 1 + 5 ?

  121. sdfsddsff
    Февраль 16th, 2012

    Спасибо за комментарий! После проверки модератором он появится на сайте. Или не появится. :)

  122. пвапв
    Март 3rd, 2012

    sfsdfsdfsdfsdfsfsgsdgs

  123. нагнаеш
    Март 4th, 2012

    имресмлпгм пр лрп рпл лрпьрм лпр

  124. kos
    Март 19th, 2012

    Пора флуд проверяльшиков убрать из этого поста)

  125. test
    Апрель 2nd, 2012

    тестим

  126. Kemal
    Апрель 6th, 2012

    тествымыЯВмывывямяывмыввымяывмяывам

  127. Pavel
    Апрель 24th, 2012

    kljsalkjsa

  128. кауа
    Май 8th, 2012

    dfsadf ds fsdfsd

  129. Владислав
    Май 9th, 2012

    Спасибо. А как менять дизайн такой формы? И можно ли убирать ненужные функции в написании коментария?

  130. вапвап
    Май 14th, 2012

    ачвспвапвап

  131. sdf
    Май 14th, 2012

    document.alert(пиздец)

Оставить комментарий


© 2008 - 2012 i-novice.net | Все права защищены.