Javascript 为什么我的php认为数组是字符串?
我有这个前端javascript代码,它通过数组收集信息并发送到后端。出于某种原因,我的php代码认为这个数组实际上是一个字符串。 以下是我的javascript代码:Javascript 为什么我的php认为数组是字符串?,javascript,php,Javascript,Php,我有这个前端javascript代码,它通过数组收集信息并发送到后端。出于某种原因,我的php代码认为这个数组实际上是一个字符串。 以下是我的javascript代码: function gamesearch() { var text_search = document.getElementById("search-space").value; var creator_search = document.getElementById("search
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);
}
这是我的后端php代码
if (isset($_POST['gamesearch'])) {
$text_search = $_POST['text_search'];
$creator_search = $_POST['creator_search'];
$tagarray = $_POST['tagarray'];
echo gettype($tagarray);
}
控制台上写着:字符串。
请帮忙!谢谢 在将JSON数组发送到后端之前,尝试将其字符串化
fd.append("tagarray", JSON.stringify(tagarray));
然后在后端重新解码
$tagarray = json_decode($_POST['tagarray']);
在将JSON数组发送到后端之前,请尝试对其进行字符串化
fd.append("tagarray", JSON.stringify(tagarray));
然后在后端重新解码
$tagarray = json_decode($_POST['tagarray']);
您是否尝试过转储$_POST['tagarray']以查看您收到它的确切形式?PHP不会说JavaScript,反之亦然。因此,您必须将JavaScript编码为双方都可以解释的格式,如JSON。您是否尝试过转储$_POST['tagarray']以查看接收到它的确切形式?PHP不讲JavaScript,反之亦然。因此,您必须将JavaScript编码为双方都可以解释的格式,如JSON。