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

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

  • Завсегдатай
  • 1957
  • 267 / 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().
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

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

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

sivers

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

Spell161

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

sivers

  • Завсегдатай
  • 1957
  • 267 / 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 не буду тут. Достаточно понимать то, что выше. Просто старайтесь указывать полные пути от корня.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

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 не буду тут. Достаточно понимать то, что выше. Просто старайтесь указывать полные пути от корня.

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

Вставка PDF, DOC, XLS в материал Joomla 3

Автор warlocksp

Ответов: 6
Просмотров: 13467
Последний ответ 03.05.2022, 20:14:17
от memo
Как вставить описание картинки в Joomla 3.10.8?

Автор Benderalfa

Ответов: 8
Просмотров: 220
Последний ответ 25.04.2022, 21:51:55
от Benderalfa
Восстановление сайта на Joomla 3

Автор memo

Ответов: 9
Просмотров: 305
Последний ответ 13.04.2022, 22:01:35
от memo
Почему Joomla не поддерживает формат webp?

Автор Sensession

Ответов: 72
Просмотров: 6819
Последний ответ 01.04.2022, 14:56:59
от zeus07
Копирование материалов в Joomla 4 на android

Автор web1

Ответов: 1
Просмотров: 213
Последний ответ 08.03.2022, 19:49:58
от web1