插入键=>;来自提交的Javascript对象的PHP中的值对


insert key=>value pair in PHP from a submitted Javascript object

im正在尝试找出如何使用array_unshiftkey=>value对正确插入数组

这是我的密码。

Javascript/AAJAX

var array= {};
array['name'] = name;
array['lname'] = lname;
$.ajax ({ 
   type:"POST",
   url:"some.php",
   data: {array:array},
   success: function(html) {}
});

PHP将通过POST 接收数组

$array = $_post['array'];
//add additional key=>value pair in the array
array_unshift($array, "['middle']=>test");
return $array;

我没有从中得到任何错误,我只是没有看到函数打印的值。

打印结果:

Object {name: "John", lname: "Smith"}

编辑:打字错误

我认为你做得不对。。。

您不能通过PHP更改JavaScript数组(实际上它是一个对象)。但是,可以获取新数据并替换JavaScript对象。

因为我期待一个对象,所以我还不如使用JSON格式——因此使用$.getJSON()。请注意,默认情况下这是一个GET请求。

var url = 'file.php';
var obj = {
    name: name,
    lname: lname
};
$.getJSON(url, { data:obj }, function(data) {
    // replace object with new content
    obj = data;
    console.log(obj);
});

至于你的PHP代码:

// get data (remember we're using a GET request)
$data = $_GET['data'];
// add an index
$data['middle'] = 'test';
// echo data in JSON format
echo json_encode($data);
// not var array= {};
var person = {}
person['name'] = name;
person['lname'] = lname;

person重命名为类似的array

var array= {};
array['name'] = name;
array['lname'] = lname;
$.ajax ({ 
   type:"POST",
   url:"some.php",
   data: {array:array},
   success: function(html) {}
});

或者将person阵列作为array 发送

data: {array:person},

编辑:。像一样简单尝试

$array['middle'] = 'test';