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