Новости Joomla

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

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

  • Живу я здесь
  • 2465
  • 336 / 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
  • 434 / 7
  • ищу работу
Re: ajax + Joomla
« Ответ #3 : 23.01.2020, 18:48:51 »
добавил эти строчки:
Лучше код PHP
Код
var_dump($_POST);
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 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

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

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

Что хранится в таблице overrider Joomla 3?

Автор web1

Ответов: 2
Просмотров: 228
Последний ответ 04.04.2024, 22:10:48
от web1
reCAPTCHA V2 Google - Для Joomla 3

Автор Alex GOOD

Ответов: 35
Просмотров: 8355
Последний ответ 10.01.2024, 21:41:38
от Vastriet
Joomla 3.10.12 и MySQL 8

Автор designer71

Ответов: 0
Просмотров: 402
Последний ответ 19.10.2023, 11:25:18
от designer71
Почему Joomla не поддерживает формат webp?

Автор Sensession

Ответов: 74
Просмотров: 10690
Последний ответ 03.10.2023, 19:44:42
от fsv
erid в Joomla

Автор newalex

Ответов: 0
Просмотров: 328
Последний ответ 25.09.2023, 18:45:34
от newalex