Cheizer
@Cheizer

Как принять serialize() в php?

Друзья, не могу принять serialize в php и распечатать массив. Дурь какая то.

Было в JS
$.ajax({
                               type: "POST",
                               url: mailHandlerURL,
                               data: {
                                    name: getValFromLabel($('.name', _.form)),
                                    email: getValFromLabel($('.email', _.form)),
                                    phone: getValFromLabel($('.phone', _.form)),
                                }
                            })


В php принимал так

$email = "";
if (isset($_POST["email"])) {
$email = $_POST["email"]; 
}

И дальше отправлял все работало, теперь когда появился массив многомерный, его оч сложно передать ajax в php, не получилось, несколько дней бился, поэтому решил использовать serialize

$.ajax({
                                type: "POST",
                                url: mailHandlerURL,
				data: form.serialize(),
                                success: function () {
					console.log(_.form.serialize())
                                }
                            })


НО в php теперь ничего не прилетает, или прилетает но не распечатывает, как принять? Теперь нет $_POST["email"] или как теперь правильно?

Делал и так
parse_str($_POST['serialize'], $email); 
$email = $email['email'];


Все равно ничего не печатает :(
  • Вопрос задан
  • 2777 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
А почему бы не использовать JSON? На стороне PHP - функцией json_decode преобразовывать обратно в массив
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@imhuman
В пост нет никакого элемента с именем serialize, посмотри в браузере на отправляемые данные
Ответ написан
KPEATuBHO
@KPEATuBHO
Full-stack world-wide developer
Метод $.serialize приводит данные полей формы в query string формат. Свойство data ожидает передачц объекта. Ничего не надо в JSON конвертировать - это дичь, все что нужно нормально передать объект. Для этого есть куча реализаций, вот накидал простой пример: https://codepen.io/kpeatubho/pen/oEPrBm (метод $.serializeObject) в итоге в переменной data у нас нормальный объект, передавая который, можно нормально работать с POST данными.
Ответ написан
customtema
@customtema
arint.ru
var_dump($_POST); что показывает? Спорим, $_POST['data'], в котором все и лежит?

Из него и доставайте.
Ответ написан
@Loki9928
Блин спрашивают одно . А отвечают вообще другое. Andrew Popov можно тогда вообще циклом по форме пройтись и собрать все данные. Зачем городить то что ты написал?

parse_str($_POST[arraydata], $searcharray);
print_r($searcharray);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы