如何通过Ajax发送Javascript对象到PHP?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我有一个数组是用Javascript编写的。

当用户点击'保存'按钮时,我有一个函数被调用。功能如下:

function createAmenities() {
    if (window.XMLHttpRequest) {
        //code for IE7+, Firefox, Chrome and Opera
        xmlhttp = new XMLHttpRequest();
    }
    else {
        //code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById('message').innerHTML = xmlhttp.responseText;
        }
    }

    var url = "create_amenities.php";

    xmlhttp.open("GET", url, true);

    xmlhttp.send();

}

我的问题是: 我可以在这个函数中把数组拉到我想要调用的php脚本中('create_amenities.php')?

提问于
用户回答回答于

如果你的数组有更多的1维或者是一个关联数组,你应该使用JSON。

Json将一个完整的数组结构转换为一个字符串。这个字符串可以很容易地发送到您的PHP应用程序,并转回到一个PHP数组。

有关json的更多信息:http://www.json.org/js.html

var my_array = { ... };
var json = JSON.stringify( my_array );

在PHP中,你可以用json_decode解码字符串:

http://www.php.net/manual/en/function.json-decode.php

var_dump(json_decode($json));
用户回答回答于

循环访问数组,并且每次将encodeURIComponent('keyname []')+'='+ encodeURIComponent(theArray [i])+'&'添加到查询字符串中。

扫码关注云+社区