не может передать массив в файл php с помощью запроса ajax (jquery) - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь передать сериализованный массив через запрос ajax в мой файл saveData. php, чтобы сохранить данные в моей базе данных.

var postData = $('#formular').serializeArray();

это те данные, которые я хочу проходить. Я создаю массив со всеми данными, чтобы передать его как массив json в файл php:

    var formArray={};
    $.each(postData, function (index, field ){
        formArray[field.name]=field.value;
    });
    var formData=JSON.stringify(formArray);

$.ajax({
        type: 'POST',
        contentType: 'application/json',
        url:"functions/saveData.php",
        data : formData,
    }).done(function(data) {
        console.log('done: '+data);
    }).fail(function(data) {
        console.log('fail: '+data);         
    });

Когда я смотрю на $ _POST в PHP, там это пустой массив ...

на стороне php Я пытаюсь перехватить данные с помощью следующего кода ....

<code>$getPostedData=$_POST;

if($debug){
    echo '<pre>';
    print_r($getPostedData);
    echo'
'; }

Это дает мне следующий вывод:

    Array
(
)

что я делаю не так? Спасибо за помощь.

1 Ответ

0 голосов
/ 24 марта 2020

Простой пример, который похож на ваш случай. Для этого достаточно использовать serialize():

var postData = $('#formular').serialize();

И теперь вы можете просто отправить его на AJAX:

$.ajax({
   url:"functions/saveData.php", 
   method:"POST",
   data: postData
}).done(function(resp){
   console.log(resp);
});

HTML кодовая форма выглядит следующим образом:

<form id="formular" onsubmit="javascript:return false;">
    <!-- for defined data -->
    <input type="hidden" name="order_id" value="3435" /> 

    <!-- for arrays -->
    <input type="text" name="ex_arr[]" value="3343" />
    <input type="text" name="ex_arr[]" value="1123" />

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