繁体   English   中英

通过 $.ajax 向 PHP 发送数组/集。 PHP 添加一个数字

[英]Sending an array/set via to PHP via $.ajax. PHP adding a number

我试图向 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']);
?>

我在屏幕上看到以下问题

在此处输入图片说明

他为什么要加一个额外的 1 ?

当我尝试像这样访问数组的第一个元素时:

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

他控制台记录了我的数字 11?

我做错了什么通过 Ajax 发送数组的正确方法是什么?

是否也可以通过 Ajax 发送一个集合?

因此,根据您的评论,您的问题似乎实际上是指如何通过发送数据,而不是您得到的奇怪输出,Jay 已经为您回答了。

就您的代码而言,您实际发送的是:

{[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);
            }
        });

因为您正在回显print_r() (它本身就是一种echo ),所以您正在为print_r()的真实性返回一个值。 将行更改为此

print_r($_POST['usedAnswers']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM