在jQuery PHP Ajax中循环遍历js数组

时间:2018-10-21 16:46:40

标签: javascript php jquery ajax

我正在尝试使用ajax遍历js对象。我当时在看json_decode,但是没有用,因为这是一个数组而不是对象。

var array = [{type: 'a', value: 1}, {type: 'b', value: 1}]
$.ajax{
  url: "php.php",
  data: {array: array}
}

将使用我的PHP代码在数据库中为数组中的每个项目创建新行。我该怎么办?

2 个答案:

答案 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} }

    });