[英]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.