Вход

Просмотр полной версии : Не отправляется или не получает


gko11
29.06.2017, 14:40
Есть обработчик формы

JS:
var submitRequestForm = function() {
$('#bronModal').modal('hide');
$('#thxModal').modal('show');
var json = JSON.stringify({
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val(),
site: 'Poisk apteki'
});
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url,
json,
function(resp) {
console.log(resp);
}
);

$.post("http://search-apteki.ru/sendmail/index.php",
JSON.stringify({
name: $("#req_name").val(),
phone: $("#req_phone").val(),
comment: $("#req_drug").val() + ", " + $("#req_comment").val(),
}),
function(resp) {
}
);
}

И есть обработчик отправленных данных
PHP:
<?php
if(isset($_POST['name']))
{
$name = $_POST['name'];
$name = htmlspecialchars($name);
$name = urldecode($name);
$name = trim($name);
$drug = $_POST['drug'];
$drug = htmlspecialchars($drug);
$drug = urldecode($drug);
$drug = trim($drug);
$phone = $_POST['phone'];
$phone = htmlspecialchars($phone);
$phone = urldecode($phone);
$phone = trim($phone);
$comment = $_POST['comment'];
$comment = htmlspecialchars($comment);
$comment = urldecode($comment);
if (mail("123123123@ya.ru", "Заявка с сайта", "Имя:".$name." E-mail: ".$drug." Телефон:".$phone." Сообщение:".$comment."",$drug))
{ echo "сообщение успешно отправлено";
//header('Refresh:3; URL=https://123123123/contacts.php');

} else {
echo "при отправке сообщения возникли ошибки";
}
} else header("Location: /");?>
В итоге данная система в паре не работает, а обработчик на php пашет, в чём косяк?

ksa
29.06.2017, 14:54
в чём косяк?
Так потестируй свое творение. :D
Проверь доходит ли дело до самой отправки... Получил ли чего сервер... Сам ему пошли все, что нужно - посмотри чего он там ответил...

Отправитель и получатель в одном домене?

gko11
29.06.2017, 15:00
В том-то и дело что всё работает, кроме одного, $.post не отправляет данные на файл обработчик, который работает

ksa
29.06.2017, 15:45
всё работает, кроме одного, $.post не отправляет данные на файл обработчик
Как ты это проверял? Есть ли ошибки в консоли?

gko11
29.06.2017, 15:55
Ну так сказать функция mail выполняется, т.е. js запрашивает php проверку..
Но вот не задача, поля приходят пустыми.... Т.е. по сути он отправляет данные, но пустые

ksa
29.06.2017, 16:02
он отправляет данные, но пустые
Так посмотри чего в итоге ты там наформировал... Не вали все на "него". :)
поля приходят пустыми
Если "получатель" получает "управление" значит $.post срабатывает. Проверяй чего ты ему суешь на отправку...

gko11
29.06.2017, 16:04
На отправку даю форму<form action="javascript: submitRequestForm();">
<div class="form-group">
<input class="form-control" required placeholder="Ваше имя" value="" id="req_name" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Интересующий препарат" id="req_drug" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" required placeholder="Телефон" id="req_phone" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Комментарий" id="req_comment" value="" type="text">
</div>
<div class="clearfix"></div>
<button type="submit" class="btn btn-request btn-block">Отправить</button>
</form>

var submitRequestForm = function() {
$('#bronModal').modal('hide');
$('#thxModal').modal('show');
var json = JSON.stringify({
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val()
});
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url,
json,
function(resp) {
console.log(resp);
}
);
}

gko11
29.06.2017, 16:05
И если я отправлял отдельно текст name: "123"
Тоже приходит пустым

ruslan_mart
29.06.2017, 16:06
gko11, а зачем JSON.stringify? Напрямую объект нужно вроде как.

gko11
29.06.2017, 16:09
Напрямую тоже пробовал, не выходит

laimas
29.06.2017, 16:45
gko11,
если клиент отправляет JSON, то на сервере не будет $_POST['name'] и прочего.

$name = htmlspecialchars($name);
$name = urldecode($name);

и далее подобное, это никчемное и не нужное.

gko11
29.06.2017, 17:00
if(isset($_POST['name']))
{
В начале обработчика стоит проверка,
Тут косяк в js либо в форме

gko11
29.06.2017, 17:00
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url,
{
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val()
},
function(resp) {
console.log(resp);
}
);

laimas
29.06.2017, 17:08
gko11, северу данные как JSON.stringify(object) переданы не будут, не отправит JQ такое. Можно так отправить 'key=' + JSON.stringify(object).

В этом случае на сервере будет получен массив под ключом key которого будет JSON, и нужно получить данные из него сначала - json_decode.

Отправляйте просто объект как уже было сказано. А вот htmlspecialchars и urldecode выкинуть, это чушь. Первое не нужно потому, что отправление как текст, а второе потому, что urldecode будет выполнено уже.

gko11
29.06.2017, 17:11
Если можно код представить, я js пока только изучаю)

gko11
29.06.2017, 17:17
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url,
{
name: "123123",
drug: "123123",
phone: "123123",
comment: "123123"
},
function(resp) {
console.log(resp);
}
);
Пробовал делать так, но так же $_POST пустые

laimas
29.06.2017, 17:17
Если можно код представить

$.ajax({
type: 'post',
url: '/sendmail/index.php', //домен не обязателен, если только не запрос на другой
data: {
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val()
},
success: function(d) {
//Обработка ответа сервера, ответ хранится в d
}
})

gko11
29.06.2017, 17:21
Спасибо, но не работает, мне кажется косяк в самой форме, т.к. пытался на прямую с формы отправить на обработчик, а толку 0, так жы пустые значения

laimas
29.06.2017, 17:21
gko11,
Добавьте полям формы имена name, drug, phone, comment соответственно, запрос отправляйте по событию submit формы, тогда data: можно записать проще:

data: $(this).serialize()

laimas
29.06.2017, 17:32
мне кажется косяк в самой форме

У вас куча косяков. Локальный сервер для отладки скриптов есть? Сохраните в нем это файл как .php под любым именем и запустите.

<?
if($_POST) {
exit(print_r($_POST, 1)); //отправим клиенту что получили
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
$('#send').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'post',
url: location, //заменить в реальном коде на действительный URL
data: $(this).serialize(),
success: function(d) {
//Обработка ответа сервера, ответ хранится в d
alert(d)
}
})
});
});
</script>
</head>
<body>
<form id="send">
<div class="form-group">
<input class="form-control" required placeholder="Ваше имя" value="Пример" name="name" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Интересующий препарат" name="drug" value="Пример" type="text">
</div>
<div class="form-group">
<input class="form-control" required placeholder="Телефон" name="phone" value="Пример" type="text">
</div>
<div class="form-group">
<textarea class="form-control" placeholder="Комментарий" name="comment">Пример</textarea>
</div>
<div class="clearfix"></div>
<button type="submit" class="btn btn-request btn-block">Отправить</button>
</form>
</body>
</html>

Клиент в ответ получит массив, который он отправил серверу. Заменив в url текущий (location) на свой реальный, код будет отправлять и на реальный адрес. Поле INPUT для комментария неудобно.

gko11
29.06.2017, 17:37
Увы, этот метот ещё раз попробовал, не работает

laimas
29.06.2017, 17:40
Увы, этот метот ещё раз попробовал

Такого быть не должно. Если не работает, значит у вас бардак полный. Где проверяется?

gko11
29.06.2017, 17:42
Если просто вставить скрипт, то он пашет исправно, если подключить мой обработчик никакой реакции

gko11
29.06.2017, 17:46
У вас куча косяков. Локальный сервер для отладки скриптов есть? Сохраните в нем это файл как .php под любым именем и запустите.

<?
if($_POST) {
exit(print_r($_POST, 1)); //отправим клиенту что получили
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
$('#send').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'post',
url: location, //заменить в реальном коде на действительный URL
data: $(this).serialize(),
success: function(d) {
//Обработка ответа сервера, ответ хранится в d
alert(d)
}
})
});
});
</script>
</head>
<body>
<form id="send">
<div class="form-group">
<input class="form-control" required placeholder="Ваше имя" value="Пример" name="name" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Интересующий препарат" name="drug" value="Пример" type="text">
</div>
<div class="form-group">
<input class="form-control" required placeholder="Телефон" name="phone" value="Пример" type="text">
</div>
<div class="form-group">
<textarea class="form-control" placeholder="Комментарий" name="comment">Пример</textarea>
</div>
<div class="clearfix"></div>
<button type="submit" class="btn btn-request btn-block">Отправить</button>
</form>
</body>
</html>

Клиент в ответ получит массив, который он отправил серверу. Заменив в url текущий (location) на свой реальный, код будет отправлять и на реальный адрес. Поле INPUT для комментария неудобно.

http://search-apteki.ru/1.php

laimas
29.06.2017, 18:00
url: "/sendmail/index.php", - строковые выражения нужно заключать в кавычки.

И не цитируйте полностью то, что я пишу.

gko11
29.06.2017, 18:01
Покопавшись в коде, понял что косяк где-то в главной странице, а где не пойму
<!DOCTYPE html><html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Единая справочная служба по всем аптекам Москвы, подробная информация о наличии лекарств, удобный поиск по районам и подбору низких цен. Подробная информация о времени работы и контактные телефоны аптек.">
<meta name="keywords" content="аптеки Москвы, справочная аптек Москвы, поиск лекарств, наличие лекарств в аптеках Москвы">
<title>Справочная аптек — поиск лекарств в аптеках, наличие и цены</title>
<link rel="shortcut icon" href="static/favicon.ico" type="image/x-icon">
</head>
<body>
<nav class="navbar navbar-default row">
<div class="col-xl-offset-3 col-xl-6 col-lg-offset-1 col-lg-10 col-md-offset-1 col-md-10 col-sm-offset-0 col-sm-12 nav-container">
<div style="width: 100%; white-space: nowrap;">
<a class="navbar-brand" href="index.html">
<img alt="поиск препаратов аптеки РФ" src="static/logo_drug.png">
<div class="navbar-brand__descriptions">
<span class="navbar-brand__desc1">ПОИСК-АПТЕКИ.RU<br></span>
<span class="navbar-brand__desc2">Единый справочник препаратов России<br>по выгодным ценам</span>
</div>
</a>
<div class="head-right">
<div class="head-description">
<a class="head-description__link" href="index.html#bronModal" onclick="$('#bronModal').modal('show')">Перезвоните мне</a>
</div>
</div>
</div>
</div>
</nav>

<div class="row">
<div class="col-xl-offset-3 col-xl-6 col-lg-offset-1 col-lg-10 col-md-offset-1 col-md-10 col-sm-offset-0 col-sm-12">
<!-- <h1>Поиск лекарств в аптеках</h1> -->
</br></br><div id="search" class="two">
<div class="search"><form id="search_form" action="javascript: submitForm();">
<div class="input-group">
<input class="form-control" placeholder="Ведите название лекарства для того что бы начать поиск" id="search_form_input" value="" type="text" />
<span class="input-group-btn"><button class="fa fa-search" type="submit"><img src="static/img/search_small.png" alt="Поиск"></button></span>
</div>
</form>
</div>
</div>

<div class="content one">
<!-- Search -->
<div style="margin-top: 30px;margin-left:-40px;">
<blockquote>Для того, что бы найти необходимый Вам препарат введите его в строку поиска.</br>Например: Софосбувир, Доклотосфир, Ледипасфир</blockquote></div>
</div>
</div>
</div>
<div class="row" style="margin-top: 30px;">
<div class="col-xl-offset-3 col-xl-6 col-lg-offset-1 col-lg-10 col-md-offset-1 col-md-10 col-sm-offset-0 col-sm-12">
<div class="row" style="text-align: center;">
<div class="col-xs-12 col-sm-4">
<img src="static/img/step1.jpg" width="150px" style="max-width: 100%;">
<div style="font-size: 32px; color: #808080">ШАГ 1</div>
<div style="font-size: 16px;">Воспользуйтесь поиском препаратов<br>вверху страницы</div>
</div>
<div class="col-xs-12 col-sm-4"><img src="static/img/step2.jpg" width="150px" style="max-width: 100%;">
<div style="font-size: 32px; color: #808080">ШАГ 2</div>
<div style="font-size: 16px;">Ознакомьтесь со списком результатов.<br>Проверенных аптечных учреждений</div>
</div>
<div class="col-xs-12 col-sm-4"><img src="static/img/step3.jpg" width="150px" style="max-width: 100%;">
<div style="font-size: 32px; color: #808080">ШАГ 3</div>
<div style="font-size: 16px;">Позвоните в выбранную аптеку или<br><a href="index.html#bronModal" onclick="$('#bronModal').modal('show')">закажите звонок нашего специалиста</a>
</div>
</div>
</div>
</div>
</div>

<div class=" row">
<div class="col-xl-offset-3 col-xl-6 col-lg-offset-1 col-lg-10 col-md-offset-1 col-md-10 col-sm-offset-0 col-sm-12 footer">
<a class="footer-brand" href="index.html">
<div class="navbar-brand__descriptions">
<span class="navbar-brand__desc1">ПОИСК-АПТЕКИ.RU<br></span>
<span class="navbar-brand__desc2">Единый справочник препаратов<br>по выгодным ценам</span>
</div>
</a>


<span class="footer__copyright">© 2015-2017 Все права защищены</br>Разработано студией <a href="http://s-white.ru">S-WHITE</a></span>
</div>
</div>
<script defer src="static/js/jquery-3.1.1.min.js" type="text/javascript"></script>
<script defer src="static/js/bootstrap.min.js" type="text/javascript"></script>
<script defer src="static/js/jquery-ui.min.js"></script>
<div id="licenseModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<!-- Заголовок модального окна -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Лицензии</h4>
</div>
<!-- Основное содержимое модального окна -->
<div class="modal-body request-modal">
<div class="row"><div class="col-xs-4">
<a href="static/licenz1.jpg"><img src="static/licenz1-small.jpg" style="width: 100%"></a>
</div>
<div class="col-xs-4"><a href="static/lic2.jpg"><img src="static/lic2-small.jpg" style="width: 100%"></a>
</div>
<div class="col-xs-4"><a href="static/inn.jpg"><img src="static/inn-small.jpg" style="width: 100%"></a>
</div>
</div>
</div>
<!-- Футер модального окна -->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
</div>
</div>
</div>
</div>
<div id="thxModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<!-- Заголовок модального окна -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Спасибо за обращение.</h4>
</div>
<!-- Основное содержимое модального окна -->
<div class="modal-body request-modal">
Наш оператор свяжется с вами в ближайшее время
</div>
<!-- Футер модального окна -->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="bronModal" tabindex="-1" role="dialog" aria-labelledby="bronModalLabel" aria-hidden="true" style="width: 100%">
<div class="modal-dialog request-modal">
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="position: absolute; top: 10px; right: 20px;">×</button>
<div class="row" style="height: 100%">
<div class="col-xs-12 col-sm-7 col-md-8">
<h2 style="color: #f16525; align: center; display: block" align="center">Заказать обратный звонок</h2>

<form action="javascript: submitRequestForm();">
<div class="form-group">
<input class="form-control" required placeholder="Ваше имя" value="" name="req_name" id="req_name" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Интересующий препарат" name="req_drug" id="req_drug" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" required placeholder="Телефон" name="req_phone" id="req_phone" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Комментарий" name="req_comment" id="req_comment" value="" type="text">
</div>
<div class="clearfix"></div>
<button type="submit" class="btn btn-request btn-block">Отправить</button>
</form>
</div>
<div class="consult col-xs-12 col-sm-5 col-md-4" style="text-align: center;">
<p style="font-size: 16px;">
или позвоните на бесплатный номер
</p>
<h1>+7(495) 211-07-12</h1>
<p style="font-size: 12px;">
звонок по РФ бесплатный <br>24 часа в сутки
</p>
</div>
</div>
</div>
<div class="modal-footer" style="text-align: center">
<span style="text-size: 12px; color: grey;">Мы гарантируем полную конфиденциальность ваших данных</span>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<script defer type="text/javascript" src="static/js/app.js"></script>
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/bootstrap.min.css">
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/bootstrap-yii.css">
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/jquery-ui-bootstrap.css">
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/template.css">
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/responsive.css">
<link rel="stylesheet" property="stylesheet" type="text/css" href="static/css/font-awesome.min.css">
<!-- RedConnect -->
<script id="rhlpscrtg" type="text/javascript" charset="utf-8" async="async"
src="https://web.redhelper.ru/service/main.js?c=klimatorru"></script>
<!--/RedConnect -->
</body>
</html>

gko11
29.06.2017, 18:02
Пишет что сообщение отправленно, только скрипт php всё равно не получил данные, проверял этот скрипт на голой html форме, всё работает

laimas
29.06.2017, 18:05
<input class="form-control" placeholder="Комментарий" name="req_comment" id="req_comment" value="" type="text"> - считаете, что в такое поле удобно писать комментарий? Наверное же TEXAREA нужна?

Вот эту хрень id="req_comment" и подобное в других полях выкинуть к чертовой матери. Смотрите код формы в примере, у них имена, и этого достаточно, и как отправляются поля формы примере тоже показано.

action="javascript: submitRequestForm();" - в помойку. Смотрите пример.

gko11
29.06.2017, 18:08
id="req_comment" было изначально, name сказали добавить выше...
action="javascript: submitRequestForm();"
action="http://search-apteki.ru/sendmail/index.php" method="POST"
Ни 1 из вариантов не работает, по поводу коментария, это уже не важно, главное чтоб работал

laimas
29.06.2017, 18:08
Пишет что сообщение отправленно

Сначала просто принять в своем коде и отправить клиенту полученное точно также, как в примере. Почта потом, тем более, что так не отправляют почту "не англицкую".

gko11
29.06.2017, 18:13
Да дело то не в почте или скрипте, дело где-то на html странице, т.к. я вместо этой формы ставил рабочую и о чудо она тоже не работала...
Но как проблема может быть в html?
Ставил без скриптов и css эту страницу и рабочую форму, не отправляло!

laimas
29.06.2017, 18:20
Да дело то не в почте или скрипте

Уверены? Причем тут HTML? Не гадайте на кофейной гуще, открывайте отладчик браузера, проверяйте сеть, XHR запросы, по запросу http://search-apteki.ru/1.php данные как и положено отправляются. Если бы отправки не было, сервер вообще бы не ответил.

До отправки почты лень написать

if($_POST) exit(print_r($_POST, 1));

чтобы удостоверится что север получает данные?

Хотите получить помощь, значит проверять а не гадать.

gko11
29.06.2017, 18:26
Дак всмысле гадать? Если html форма, в которой указан метод пост и ссылка на обработчик, аналогично не работает, тут стоит грешить тогда на обработчик, я его проверил на голой форме и он работает, тогда в чём косяк? В форме? Я вставил голую форму за место той и она тоже не работала, отключив js и стили она аналогично не работала, остаётся 2 проблемы это хостинг(Но работает он исправно) и html.
Я не гадаю на кофейной гуще, я перепробовал все варианты, и они не работают

laimas
29.06.2017, 18:29
Вот это другое дело, работает ваш код по http://search-apteki.ru/1.php. То есть все Ок. Остается посмотреть внимательно на код формы моего примера и на свой. В моем у полей есть имена, ID не нужны. Поля сериализует метод jQ, а если у поля формы нет имени, то на сервер оно отправляться не будет. Приведите в порядок код своей формы, выкинув из нее то, о чем говорилось и все будет работать.

laimas
29.06.2017, 18:35
На реальной странице, два раза подключается jQuery - исправить. Либо со своего сайта, либо с Гугла.

laimas
29.06.2017, 18:37
Да, и оператор ваш по указанному мной номеру телефона "а" связаться вряд ли сможет.

gko11
29.06.2017, 18:49
<form method="POST" action="http://search-apteki.ru/sendmail/index.php">
<div class="form-group">
<input class="form-control" required placeholder="Ваше имя" value="" name="req_name" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Интересующий препарат" name="req_drug" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" required placeholder="Телефон" name="req_phone" value="" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Комментарий" name="req_comment" value="" type="text">
</div>
<div class="clearfix"></div>
<button type="submit" class="btn btn-request btn-block">Отправить</button>
</form>
На файл перенаправляет, выводит что сообщение отправлено, но оно не отправляется....
Хотя ещё пол часа назад отправлялось

gko11
29.06.2017, 19:01
Ещё один пример, попробуй отправит данные, увидишь что получил php скрипт http://search-apteki.ru/1.php

laimas
29.06.2017, 19:07
Мне что еще раз код написать или достаточно для понимания?

Я разве это придумал в вашем коде на сервере?

$name = $_POST['name'];
$drug = $_POST['drug'];
$phone = $_POST['phone'];
......

Нет. Это я согласно этого в своем коде формы именовал так поля ее: name, drug, ....

А у вас что за хрень такая name="req_name" и т.д.? Как может север получить в массиве полученном по ключу name, если в нем такого нет? Естественно $name = $_POST['name'] будети равно NULL. Вы же на сервере ничего не проверяете (и на клиенте тоже), не важно что там пришло, пустое ли поле или нет, сразу воткнули в почтовое сообщение и отправили.

gko11
29.06.2017, 19:09
Сделал форму как сказанно выше, вернул отправку на js, выходит опять так, форма отправляет, js перехватывает и уходит на php, он отправляет всё на почту, но переменные пустые, вывод, косяк в js
var submitRequestForm = function() {
$('#bronModal').modal('hide');
$('#thxModal').modal('show');
var json = JSON.stringify({
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val()
});
$.ajax({
type: 'post',
url: 'http://search-apteki.ru/sendmail/index.php', //домен не обязателен, если только не запрос на другой
data: $(this).serialize(),
success: function(d) {
//Обработка ответа сервера, ответ хранится в d
}
})

}

gko11
29.06.2017, 19:26
Причём если через js то ответ такой
array(1) {
["{"name":"12312312","drug":"312312","phone":"312","comment":"2312"}"]=>
string(0) ""
}
сообщение успешно отправлено
И пустые переменные в итоге, а если напрямую с html то всё пашет

laimas
29.06.2017, 19:34
В общем так, я уже все сказал что только можно было сказать.

Повторю последний раз:

$.ajax({
type: 'post',
url: 'http://search-apteki.ru/sendmail/index.php', //домен не обязателен, если только не запрос на другой
data: $(this).serialize(),
success: function(d) {
//Обработка ответа сервера, ответ хранится в d
}
})

это код отправки формы, а отправляться она должна по событию onsubmit (смотреть код примера). Это:


var submitRequestForm = function() {
$('#bronModal').modal('hide');
$('#thxModal').modal('show');
var json = JSON.stringify({
name: $("#req_name").val(),
drug: $("#req_drug").val(),
phone: $("#req_phone").val(),
comment: $("#req_comment").val()
});
}

бред какой-то. Если окно формы надо закрыть, то делается это после удачного отправления почты, не просто отправления хрен знает чего, а именно данных, которые ваш сервер почему-то не удосуживается проверять. И закрываться оно должно в

success: function(d) {
//Обработка ответа сервера, ответ хранится в d
//если все Ок, то
$('#bronModal').modal('hide'); //если это и есть окно с формой
}

Что такое $('#thxModal').modal('show'); - понятия не имею.

Об именовании полей формы больше говорить не буду, коли понимаем что это name: $("#req_name").val(), хотя оно сто лет не нужно, значит должны и понимать, что поле формы должно иметь имя не req_name, а name.

Более я не знаю, что еще говорить по этому поводу.

gko11
29.06.2017, 19:59
POST http://search-apteki.ru/sendmail/index.php 502 (Bad Gateway)
Лично сейчас такая ошибка в консоли jquery-3.1.1.min.js

laimas
29.06.2017, 20:13
Что мне заматериться, чтобы вы в конце концов выбросили из своего кода хрень action="javascript: submitRequestForm();" и другую о чем я писал.

А если вы пытаетесь скрестить дремучий код из пыльного сундука с простым и естественным, то я вам не помощник.