Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не отправляется или не получает (https://javascript.ru/forum/misc/69513-ne-otpravlyaetsya-ili-ne-poluchaet.html)

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

Цитата:

Сообщение от gko11
в чём косяк?

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

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

gko11 29.06.2017 15:00

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

ksa 29.06.2017 15:45

Цитата:

Сообщение от gko11
всё работает, кроме одного, $.post не отправляет данные на файл обработчик

Как ты это проверял? Есть ли ошибки в консоли?

gko11 29.06.2017 15:55

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

ksa 29.06.2017 16:02

Цитата:

Сообщение от gko11
он отправляет данные, но пустые

Так посмотри чего в итоге ты там наформировал... Не вали все на "него". :)
Цитата:

Сообщение от gko11
поля приходят пустыми

Если "получатель" получает "управление" значит $.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

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


Часовой пояс GMT +3, время: 13:07.