Отправка массива / набора через PHP через $. ajax. PHP добавление номера - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь отправить массив в сценарий PHP:

usedAnswers = [1,2];

    // funtion for displaying a question
    displayQuestion = () => {

        $.ajax({
            url: "backend/retriveData.php",
            data: {usedAnswers:usedAnswers} ,
            type:"post",
            success: function(response) {
                console.log(response);
            }
        });
    }

    // inital display of question
    displayQuestion();

Затем, когда я хочу получить доступ к массиву в сценарии PHP

<?php
echo print_r($_POST['usedAnswers']);
?>

, я получаю следующая проблема на экране

enter image description here

Почему он добавляет дополнительный 1?

Когда я пытаюсь получить доступ к первому элементу Массив так:

echo print_r($_POST['usedAnswers'][0]);

Он console.logs мне номер 11?

Что я делаю не так, как правильно отправить массив через Ajax?

Можно ли отправить набор по Ajax?

Ответы [ 2 ]

3 голосов
/ 10 марта 2020

Поскольку вы повторяете print_r() (что само по себе является типом echo), вы возвращаете значение для правдивости print_r(). Измените строку на эту

print_r($_POST['usedAnswers']);
2 голосов
/ 10 марта 2020

так что, основываясь на ваших комментариях, кажется, что ваш вопрос действительно относится к тому, как отправлять данные, а не к странным выводам, которые вы получаете, на которые Джей уже ответил за вас.

поскольку ваш код читает, то, что вы на самом деле отправляете, это:

{[1, 2]:[1, 2]}

, что недопустимо JSON.

, если вы на самом деле пытаетесь получить ключ 'usedAnswers' ( как это выглядит из вашего php), тогда вам нужно сделать следующее:

        $.ajax({
            url: "backend/retriveData.php",
            data: {'usedAnswers':usedAnswers}, // <-- note the quotes around the key
            type:"post",
            success: function(response) {
                console.log(response);
            }
        });

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