我正在尝试使用ajax遍历js对象。我当时在看json_decode,但是没有用,因为这是一个数组而不是对象。
var array = [{type: 'a', value: 1}, {type: 'b', value: 1}]
$.ajax{
url: "php.php",
data: {array: array}
}
将使用我的PHP代码在数据库中为数组中的每个项目创建新行。我该怎么办?
答案 0 :(得分:0)
如果您不想将其作为 json字符串发送,则应该对数组进行字符串化处理:
var array = [{type: 'a', value: 1}, {type: 'b', value: 1}]
$.ajax({
url: "php.php",
data: {array: JSON.stringify( array )}
});
用
解码后$arr=json_decode($_REQUEST['array'], true);
forach($arr as $row)
{
//do here whatever you want with your data:
// $row["type"]
// $row["value"]
}
,但没有必要将数据作为json发送。如果您将其作为数组发送,则可以直接将其用作数组(无需json_decode):
var array = [{type: 'a', value: 1}, {type: 'b', value: 1}]
$.ajax({
url: "php.php",
data: {array: array }
});
可以迭代
forach($_REQUEST['array'] as $row)
{
//do here whatever you want with your data:
// $row["type"]
// $row["value"]
}
答案 1 :(得分:0)
您必须使用两个$ .each循环并创建一个新数组,该数组将在Ajax调用中传递
$nearray = array();
$.each(array, function(key1, value1)
{
//here key1 will be 0, 1, 2 ... and value1 will be internal array
$.each(value1, function(key2, value2)
{
//alert(key2+' ->'+value2);
$newarray[key2] = value2;
}
$.ajax{ url: "php.php", data: {'array': newarray} }
});