传递给 PHP 的所有数组都必须是对象字面量。下面是一个来自 JS/jQuery 的例子:
var myarray = {}; //must be declared as an object literal first
myarray[fld1] = val; // then you can add elements and values
myarray[fld2] = val;
myarray[fld3] = Array(); // array assigned to an element must also be declared as object literal
等等...`
现在可以通过Ajax在data:参数中发送如下:
data: { new_name: myarray },
PHP 将其拾取并作为普通数组读取,无需任何解码。这是一个例子:
$array = $_POST['new_name']; // myarray became new_name (see above)
$fld1 = array['fld1'];
$fld2 = array['fld2'];
etc...
但是,当您通过 Ajax 将数组返回给 jQuery 时,必须首先使用 JSON 对其进行编码。
下面是一个 PHP 示例:
$return_array = json_encode($return_aray));
print_r($return_array);
它的输出看起来像这样:
{
"fname":"James",
"lname":"Feducia",
"vip":"true",
"owner":"false",
"cell_phone":"(801) 666-0909",
"email":"jp@gmail.com",
"contact_pk":"",
"travel_agent":""
}
{再次我们看到对象文字编码标签}现在可以由 JS/jQuery 将其作为数组读取,而无需在 JS/jQuery 内部进行任何进一步操作...这是 jQuery ajax 中的一个示例:
success: function(result) {
console.log(result);
alert( "Return Values: " + result['fname'] + " " + result['lname'] );
}