Форма комментирования на 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" />

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



Теги: ,

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



 #  #  #  #  #  #  #  #  #  #

59 Ответов на “Форма комментирования на 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

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


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