[英]Why does my php think that an array is a string?
I have this frontend javascript code, that collects information (an array) and sends it to the backend.我有这个前端 javascript 代码,它收集信息(一个数组)并将其发送到后端。 And for some reason, my php code believes this array is actually a string.
由于某种原因,我的 php 代码认为这个数组实际上是一个字符串。 Here is my javascript code:
这是我的 javascript 代码:
function gamesearch() {
var text_search = document.getElementById("search-space").value;
var creator_search = document.getElementById("search-space-creator").value;
var tags = document.getElementsByClassName("selectedtag");
var tagarray = ['banana', 'fruit'];
console.log(tagarray);
var fd = new FormData();
fd.append("text_search", text_search);
fd.append("creator_search", creator_search);
fd.append("tagarray", tagarray);
fd.append("gamesearch", true);
var xhr = new XMLHttpRequest();
var fullurl = '../backend/gamesearch.php';
xhr.open('POST', fullurl, true);
xhr.onload = function() {
if (this.status == 200) {
console.log(this.responseText);
};
};
xhr.send(fd);
}
And here is my backend php code这是我的后端 php 代码
if (isset($_POST['gamesearch'])) {
$text_search = $_POST['text_search'];
$creator_search = $_POST['creator_search'];
$tagarray = $_POST['tagarray'];
echo gettype($tagarray);
}
And in the console it says: string.在控制台中它说:字符串。 Please help!
请帮忙! Thanks!
谢谢!
Try stringifying your JSON array before sending it to the backend.尝试在将 JSON 数组发送到后端之前对其进行字符串化。
fd.append("tagarray", JSON.stringify(tagarray));
Then decode it back again in the backend然后在后端再次解码
$tagarray = json_decode($_POST['tagarray']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.