jQuery - now:创建一个对象并在其中存储值以传递给AJAX调用

时间:2010-05-17 16:58:24

标签: php jquery ajax post

我有一个数组:

myarr = [];

我正在填写一些值:

myarray['name'] = "Me!";

现在我想将该数组转换为一组Key =>价值对。我虽然jQuery会自动执行,但似乎没有。

$.ajax
({
    type: "POST",
    dataType: "text",
    url: "myurl",
    data: myarr
});

有没有办法做到这一点或我做错了什么?我没有得到javascript错误,也没有服务器端错误,除了根本没有POST信息。

我需要将请求作为真正的POST请求发送。我需要保持php代码简单,因为有时登录不会成为一个AJAX调用。

我现在正在尝试以下错误unexepected token ':'

myarr:
{
    'name':'me'
}

现在的问题是:如何将新的javascript对象初始化为“空白”,如何设置映射,以及如何在AJAX调用中传递它?

3 个答案:

答案 0 :(得分:6)

data属性是一个对象,因此它使用如下符号:

data: { 'Name': 'Me!' }

data: ['Name':'Me!']

您需要将数组转换为对象。您可以轻松地代替数组执行此操作:

myData.Name = 'Me';
myData.OtherProp = 'Something';

以下是一些示例:

$.ajax({
    type: 'POST',
    dataType: 'text/html',
    url: 'myUrl.php',
    data:
    {
        'Name': 'Me!'
    },
    success: function(data, status)
    {
        // data is the returned response
    }
});

OR

var myObject = new Object();

myObject.Name = 'Me!';

$.ajax({
    type: 'POST',
    dataType: 'text/html',
    url: 'myUrl.php',
    data: myObject
});

两者都应该让你到正确的地方。

答案 1 :(得分:2)

你不能直接传递数组,你需要先编码然后传递它。例如,您可以使用json.org中的json2.js将其编码为JSON:

var mydata = JSON.stringify(myarr);
$.ajax
({
 type: "POST",
 dataType: "text",
 url: "myurl",
 data: {"mydata" : mydata}
});

然后,您需要在PHP中使用json_decode将JSON字符串转换回数组。

更新

解决您的新问题:

如何将新的javascript对象初始化为“空白”?

您可以像这样创建一个新对象:

var myObj = {};

如何设置映射?

有几种不同的方式:

myObj.name = "Me!";
myObj['name'] = "Me!";

如何在AJAX调用中传递它?

直接将其作为data参数传递:

data: myObj

答案 2 :(得分:0)

继续完全像你一样,但更改[to {and] to}(将数组更改为对象)