繁体   English   中英

使用 XMLHttpRequest 将数组发送到 PHP(纯 JS)

[英]Sending array to PHP using XMLHttpRequest (pure JS)

我正在尝试使用 AJAX 将数组从 JS 发送到 PHP。

似乎正在发生的事情是请求正在通过并成功,但服务器上没有收到任何数据(我的 test.php 脚本需要来自该数组的数据)。 这是我到目前为止...

Javascript

myButton.onclick = function() {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "test.php", true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState==4 && xhr.status==200) {
            console.log("Done. ", xhr.responseText);
        }
    }

    //xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send('myArray='+JSON.stringify(myArray));
};

测试文件

<?php
//$myArray = json_decode($_POST['myArray']); //Undefined index
print_r($_POST);

注意,上面的代码中没有显示myArray ,但它一个有效的数组。

我搜索了 SO(这导致我在其中添加了“setRequestHeader”)以及更广泛的互联网。 然而,这并没有什么不同,我似乎在兜圈子。 当我打印 $_POST 时,它总是一个空数组。

我确定我遗漏/误解了一些东西。

编辑

按照要求...

var myArray = ["John", "Jill", "James"];

我还尝试过使用布尔数组以及关联数组/对象进行此操作。

编辑 2

根据要求,从开发控制台添加屏幕截图...

在此处输入图片说明

您可以使用formData

let data = new FormData();
let values = [1, 2, 3];
data.append('myArr', JSON.stringify(values));
// send data to server

并在 php 中使用json_decode

$Values = json_decode($_POST['myArr']);

另一种方法是创建 HTML 复选框或使用 javascript 选择元素,分配值,序列化它们并将它们发送到后端。

暂无
暂无

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

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