簡體   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