簡體   English   中英

從JavaScript發送數組到PHP?

[英]send array to php from javascript?

我想使用jquery ajax將javascript數組發送到php。

$.post("controllers/ajaxcalls/users.php",
{
    links: links
});

第二個“鏈接”是一個javascript數組。

當我有這個數組:

'1' ...
    '1' => "comment1"
    '2' => "link1"
    '3' => "link2"
    '4' => "link3"
'2' ...
    '1' => "comment2"
    '2' => "link4"

然后使用:

var jsonLinks = JSON.stringify(links);
alert(jsonLinks);

會給我:

[null,[null,"comment1","link1","link2","link3"],[null,"comment2","link4"]]

在我看來,出了點問題。 而且我不能在php端使用json_decode來獲取元素。

我應該使用什么功能將其轉換為json?如何在php端訪問它? 現在已經在幾個小時內為此感到苦惱了……將不勝感激。

您可以使用json_decode讀取傳遞的json值。 看一下這篇文章

我不確定您的示例是否可以工作(您嘗試過嗎?)如果不能,則可以使用json發送數組,然后使用php對其進行解碼( http://www.php.net/manual/zh/ function.json-decode.php

就像在JSON網站上寫的那樣:stringifier方法可以采用可選的replacer函數。 將在結構中的每個值的toJSON方法(如果有)之后調用它。 將把每個鍵和值作為參數傳遞給它,並將其綁定到持有鍵的對象。 返回的值將被字符串化。

排除在JSON中沒有表示形式的值(例如,函數和undefined)。

非限定數字將替換為null。 要替換其他值,可以使用如下替換函數:

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}

可以在這里找到整頁: http : //www.json.org/js.html

我還是很新,也說這種方法不是最安全的,但是您總是可以將javascript數組轉換為字符串,然后將其通過php的URL傳遞給GET。

所以:

for(var i=0;i < jsarray.length;i++) 
{
    var x = jsarray[i];
    urlstring += "myvalue[]="+x+"&";
}

 document.location.href = "mypage.php?"+urlstring;

然后PHP將是:

$phparray = $_GET['myvalue'];

希望能有所幫助

您總是可以像這樣序列化數組:

books: $.param(books)

其工作原理如下:

$.param({a: [1, 2]}) // output: "a=1&a=2"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM