我有一个数组:
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调用中传递它?
答案 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}(将数组更改为对象)