Не можете отправить массив в php через AJAX? - PullRequest
0 голосов
/ 29 января 2019

Я следил за этим вопросом, но не могу отправить массив в php, он всегда возвращает меня пустым:

JS:

            values = [];
            values['mpsRegnomer'] = $('#mpsRegnomer').val();
            values['mpsMarka'] = $('#mpsMarka').val();
            values['mpsMarkaOther'] = $('#mpsMarkaOther').val();
            values['engineType'] = $('#engineType').val();
            values['seatNumberInput'] = $('#seatNumberInput').val();
            values['carColor'] = $('#carColor').val();
            values['mpsChassiNum'] = $('#mpsChassiNum').val();
            values['mpsModel'] = $('#mpsModel').val();
            values['mpsModelOther'] = $('#mpsModelOther').val();
            values['mpsManufactureDate'] = $('#mpsManufactureDate').val();
            values['mpsfor'] = $('#mpsfor').val();
            values['VehicleType'] = $('#VehicleType').val();
            values['dvigatelInput'] = $('#dvigatelInput').val();
            values['engineMaxPower'] = $('#engineMaxPower').val();
            values['is_automatic'] = $('#is_automatic').val();
            console.log(values);

            $.ajax({
                    type: 'POST',
                    url: 'assets/clients/services/saveDataMPS.php',
                    async: false,
                    dataType: "JSON",
                    data: {"values": JSON.stringify(values)},
                    success:function(response){
                        alert(1);
                    }
            });

console.log(values) покажи мне, чтомассив в порядке.

PHP код:

<?php

var_dump(json_decode($_POST["values"])); exit; 

Он возвращает меня всегда пустым, также пробовал только с var_dump($_POST); тот же результат .. Где я ошибаюсь?

Результат от console.log(values):

enter image description here

1 Ответ

0 голосов
/ 29 января 2019

Вы определили values как массив, и поэтому, когда вы его преобразуете в строку, вы получаете пустой массив.Определите его как объект типа values = {};, и он будет работать.

Вы не используете ассоциативные массивы в javascript, потому что

Если вы используете именованные индексы, JavaScript переопределит массив в стандартный объект.После этого некоторые методы и свойства массива будут давать неправильные результаты.

Вот почему вам нужно определить его как объект в начале.

values = {};
values['mpsRegnomer'] = $('#mpsRegnomer').val();
values['mpsMarka'] = $('#mpsMarka').val();
values['mpsMarkaOther'] = $('#mpsMarkaOther').val();

Вот рабочий JSFiddle.http://jsfiddle.net/pk97fe0b/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...