1

Тема: ajax відправляє POST, php не сприймає

Спочатку думав, що краще написати це у гілку JS, але перевірив, що насправді дані форми функцією ajax відправляються, в chrome Network статус 200, всі дані форми успішно передані, але php їх вже не отримує і відповідно не показує.

$('#client_data button[type="submit"]').click(sendForm);
function sendForm(e){
    const form = $('#client_data')[0];
    if (!form.checkValidity()){
        return;
    }
    e.preventDefault();
    $.ajax({
        method: "POST",
        type: "POST",
        url: "mail.php", 
        data: $('#client_data').serialize()
    })
    .done(function(){
        $('#client_data')[0].reset();
        $('#msg').html('Дякуємо за реєстрацію!');
        window.location.href = "thanks.html";
    })
    .fail(function(){
        $('#msg').html('Реєстрація пройшла з помилками!')
    });
}

mail.php
 

var_dump($_POST);

масив $_POST - пустий
array(0) { }

2

Re: ajax відправляє POST, php не сприймає

здається, ось тут

data: $('#client_data').serialize()

має бути зв’язка індекс-значення.
В моєму робочому коді воно виглядає так:

data: {"codeWord": message},

хоча я звісно можу помилятись.

3

Re: ajax відправляє POST, php не сприймає

nazar написав:

здається, ось тут

data: $('#client_data').serialize()

Дякую за відповідь, але навіть після явного вказання значень:

    $.ajax({
        method: "POST",
        type: "POST",
        url: "../mail.php", 
        // data: $('#client_data').serialize()
        data: {
            client_name:$('#client_name').val(),
            client_phone:$('#client_phone').val(),
            client_email:$('#client_email').val()
        }        
    })

ситуація не змінилася.

POST запит браузером відправляється, але в php - не приходить :(

4

Re: ajax відправляє POST, php не сприймає

mr.relax написав:

POST запит браузером відправляється, але в php - не приходить :(

Гляньте в DevTools, що відправляється.

5

Re: ajax відправляє POST, php не сприймає

Спробуйте

echo file_get_contents('php://input');
Подякували: leofun011

6

Re: ajax відправляє POST, php не сприймає

можливо, індекси в лапки взяти?

       data: {
            "client_name":$('#client_name').val(),
            "client_phone":$('#client_phone').val(),
            "client_email":$('#client_email').val()
        } 

7

Re: ajax відправляє POST, php не сприймає

koala, в DevTools відправляються коректні дані. Все що стосується "відправки" (ніби) працює очікувано добре. А от ні 

var_dump($_POST)

, ні

file_get_contents('php://input')

, javascriptIsLife - даних не містять.

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

Хлопці, будуть ще ідеї - пишіть... я почну зі старту.

8 Востаннє редагувалося Ostapchuk (26.03.2018 12:06:31)

Re: ajax відправляє POST, php не сприймає

mr.relax написав:

koala, в DevTools відправляються коректні дані. Все що стосується "відправки" (ніби) працює очікувано добре. А от ні 

var_dump($_POST)

, ні

file_get_contents('php://input')

, javascriptIsLife - даних не містять.

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

Хлопці, будуть ще ідеї - пишіть... я почну зі старту.

Ось мій приклад, все працює без проблем  *JOKINGLY*
лінка на пісочницю - https://jsfiddle.net/jw2bzgo7/6/

9

Re: ajax відправляє POST, php не сприймає

Переписав руцями з самого початку - запрацювало...
Щось з зірками на минулому тижні було не так... Добре, що працює - погано, що не знаю, чому не працювало...
Всім дякую за участь :)