0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 288 Просмотров
*

Spell161

  • Новичок
  • 4
  • 0 / 0
ajax + Joomla
« : 23.01.2020, 15:10:04 »
Всем здравствуйте. Сайт у меня на движке Joomla. Хочу добавить функцию обратной связи с использованием AJAX. Готовые модули мне не подходят. Нашел в интернете один пример, меня он устраивает, но не работает, не отправляется письмо. Сообщение "Спасибо за заявку! Скоро мы с вами свяжемся." появляется, но письма нет. В чем проблема?
код:
форма:
Код
	<form id="myForm">
<input type="text" name="name" placeholder="Ваше имя"/><br />
<input type="text" name="phone" placeholder="Ваш телефон"/><br />
<button>Отправить</button>
</form>

ajax:
Код
<script type="text/javascript">
jQuery(document).ready(function($) {
    $("#myForm").submit(function() {
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: $(this).serialize()
        }).done(function() {
            $(this).find("input").val("");
            alert("Спасибо за заявку! Скоро мы с вами свяжемся.");
            $("#myForm").trigger("reset");
        });
        return false;
    });
});
</script>

php файл mail.php:
Код
<?php
mail('pochta@pochta.com', 'My Subject', 'Message');
?>
*

sivers

  • Завсегдатай
  • 1610
  • 223 / 0
Re: ajax + Joomla
« Ответ #1 : 23.01.2020, 15:40:29 »
1) в файл mail.php добавьте какой-нибудь вывод текста (временно), через консоль браузера отследите сетевой запрос аякса и удостоверьтесь, что правильный ответ приходит (т.е. ваш файл действительно вызывается).
2) url: "mail.php" это лучше заменить на url: "/mail.php", если файл лежит в корне
3) на большинстве хостингов сейчас пхп-функция mail() не работает, скорее всего вы нашли устаревший пример. используйте phpMailer с авторизацией smtp или другую библиотеку с авторизацией. Либо (что лучше всего) подключайте в файле фреймворк Joomla и делайте отправку почты средствами Joomla JFactory::getMailer().
На связи в телеге @sivers
*

Spell161

  • Новичок
  • 4
  • 0 / 0
Re: ajax + Joomla
« Ответ #2 : 23.01.2020, 18:02:10 »
1) в файл mail.php добавьте какой-нибудь вывод текста (временно), через консоль браузера отследите сетевой запрос аякса и удостоверьтесь, что правильный ответ приходит (т.е. ваш файл действительно вызывается).
2) url: "mail.php" это лучше заменить на url: "/mail.php", если файл лежит в корне
3) на большинстве хостингов сейчас пхп-функция mail() не работает, скорее всего вы нашли устаревший пример. используйте phpMailer с авторизацией smtp или другую библиотеку с авторизацией. Либо (что лучше всего) подключайте в файле фреймворк Joomla и делайте отправку почты средствами Joomla JFactory::getMailer().

Спасибо, за совет, попробовал 1 пункт:
Цитировать
1) в файл mail.php добавьте какой-нибудь вывод текста (временно), через консоль браузера отследите сетевой запрос аякса и удостоверьтесь, что правильный ответ приходит (т.е. ваш файл действительно вызывается).
добавил эти строчки:
Код
<script>
console.log( "текст");
</script>
Не выводит в консоль, при обращении напрямую к файлу mail.php через адресную строку выводит в консоль

Остальные пункты пока не пробовал, позже попробую, отпишусь.
Еще один факт, если это все файлы закинуть в отдельный каталог и вызывать через файл index, грубо говоря без Joomla, то все работает, хостинг поддерживает.
*

draff

  • Гуру
  • 5184
  • 365 / 7
  • ищу работу
Re: ajax + Joomla
« Ответ #3 : 23.01.2020, 18:48:51 »
добавил эти строчки:
Лучше код PHP
Код
var_dump($_POST);
*

sivers

  • Завсегдатай
  • 1610
  • 223 / 0
Re: ajax + Joomla
« Ответ #4 : 23.01.2020, 20:51:10 »
Еще один факт, если это все файлы закинуть в отдельный каталог и вызывать через файл index, грубо говоря без Joomla, то все работает, хостинг поддерживает.
И почта приходит? В таком случай попробуйте просто п.2 сделать (добавить слеш).
На связи в телеге @sivers
*

Spell161

  • Новичок
  • 4
  • 0 / 0
Re: ajax + Joomla
« Ответ #5 : 23.01.2020, 21:22:59 »
И почта приходит? В таком случай попробуйте просто п.2 сделать (добавить слеш).
чудо, действительно помог второй пункт, спасибо. Но и пришлось файл "mail.php" положить в корень сайта, только так письмо пришло, странно. Спасибо большое за помощь, я 2 дня голову ломал с этим ajax))
*

sivers

  • Завсегдатай
  • 1610
  • 223 / 0
Re: ajax + Joomla
« Ответ #6 : 23.01.2020, 23:02:11 »
только так письмо пришло, странно.
Не странно. Когда вы ставите слеш в начало ссылки, это означает, что указываете путь от корня. Поэтому пришлось положить файл в корень и написать /mail.php. А можно было оставить его в вашей папке и указать путь для отправки аякса /mydir/mail.php.
Если же вы не указываете слеш в начале (как у вас было), то это уже относительный путь. Тогда сервер ищет файл mail.php в текущей директории (относительно адреса страницы, с которой идет отправка), т.е. если ваша форма находится на странице с адресом /category1/article-26.html, то файл mail.php должен лежать в реальной папке /category1/mail.php - тогда бы тоже все заработало.

Про ухищрения с настройкой nginx не буду тут. Достаточно понимать то, что выше. Просто старайтесь указывать полные пути от корня.
На связи в телеге @sivers
*

Spell161

  • Новичок
  • 4
  • 0 / 0
Re: ajax + Joomla
« Ответ #7 : 24.01.2020, 08:19:56 »
Не странно. Когда вы ставите слеш в начало ссылки, это означает, что указываете путь от корня. Поэтому пришлось положить файл в корень и написать /mail.php. А можно было оставить его в вашей папке и указать путь для отправки аякса /mydir/mail.php.
Если же вы не указываете слеш в начале (как у вас было), то это уже относительный путь. Тогда сервер ищет файл mail.php в текущей директории (относительно адреса страницы, с которой идет отправка), т.е. если ваша форма находится на странице с адресом /category1/article-26.html, то файл mail.php должен лежать в реальной папке /category1/mail.php - тогда бы тоже все заработало.

Про ухищрения с настройкой nginx не буду тут. Достаточно понимать то, что выше. Просто старайтесь указывать полные пути от корня.

Понял, спасибо за разъяснение.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Установка компонента в Joomla 3

Автор Бекжан

Ответов: 7
Просмотров: 1062
Последний ответ 27.03.2021, 15:00:56
от arma
Чем Joomla 3.10 будет отличаться от Joomla 3.9?

Автор web1

Ответов: 2
Просмотров: 168
Последний ответ 10.03.2021, 00:04:53
от web1
Нужна помощь! На сайте Joomla перестал работать конструктор страниц Quix

Автор Nasekin

Ответов: 1
Просмотров: 145
Последний ответ 05.03.2021, 13:02:27
от NewUsers
Joomla 3.9.23 не работают ссылки в меню на материалы

Автор Anna78

Ответов: 4
Просмотров: 355
Последний ответ 26.02.2021, 06:28:52
от beliyadm
Интернет магазин на OpenCart или Joomla?

Автор lexus26

Ответов: 11
Просмотров: 333
Последний ответ 21.02.2021, 01:06:42
от Arlecchino