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

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

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

sivers

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

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

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

gantry5 Joomla шаблон denali и вобще не пойму как настроить частицы

Автор imanager

Ответов: 0
Просмотров: 34
Последний ответ 29.05.2023, 21:42:17
от imanager
Администрирую и редактирую сайт на CMS Joomla. Вопросы про настройки CMS

Автор admi5575

Ответов: 4
Просмотров: 193
Последний ответ 10.05.2023, 09:02:29
от admi5575
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 10
Просмотров: 2507
Последний ответ 18.04.2023, 09:32:55
от Akeksandr
Затроились все записи в админке Joomla 3.10

Автор rimm

Ответов: 7
Просмотров: 244
Последний ответ 17.04.2023, 12:41:58
от sivers
Joomla 3.3.4 nginx и конфиг htaccess

Автор bagas

Ответов: 16
Просмотров: 4545
Последний ответ 29.03.2023, 12:33:18
от SolopoV