如何动态地将两个关联值保存到数组中并在js中访问它们?

时间:2013-05-29 12:55:05

标签: php javascript arrays json

我目前正在将$row 'id'从我的数据库保存到数组中。然后使用json_encode将此数组发送回我的JS文件,我在其中访问它。这很好。

我的问题是我正在努力弄清楚如何将$row['vote_fb_name'](字符串)添加到同一个json回调数组中(在这种情况下,我的回调被保存到$feedback)? $row['vote_fb_uid']$row['vote_fb_name']出现在同一记录中。

我的PHP - 在这里我将我的id保存到数组中:

while ($row = mysql_fetch_assoc($res))
{
  $savedResultsInNewArray[] = $row['vote_fb_uid'];
}
$feedback = $savedResultsInNewArray;

然后我执行我的回调,这是我的js文件收到的:

echo json_encode(array('returned_val' => $feedback));

在我的JS中,我然后运行for loop来访问ID:

for( var i = 0; i < data.returned_val.length; i++ ){
  var returnedId = data.returned_val[i];
  console.log("IDS HERE "+returnedId);
}

在同一个for loop我想要访问相关的'名字'。

在PHP中,我认为我需要将数据保存为二维数组,但是我该如何做,之后如何在我的JS中访问它?

3 个答案:

答案 0 :(得分:1)

试试这个方法,

在PHP代码中

while ($row = mysql_fetch_assoc($res))
{
    $feedback[] = array($row['vote_fb_uid'], $row['vote_fb_name']);
}
echo json_encode(array('returned_val' => $feedback));

在JS中

for (i in data.returned_val) {
 console.log("IDS HERE "+data.returned_val[i][0]);
 console.log("NAME HERE "+data.returned_val[i][1]);
}

答案 1 :(得分:0)

事实上,$ feedback已经是一个二维数组

$feedback = array();
while ($row = mysql_fetch_assoc($res))
{
     $feedback[] = $row;
}
echo json_encode(array('returned_val' => $feedback));

或者,如果使用PDO

echo json_encode(array('returned_val' => $stmt->fetchAll()));

当然你需要

答案 2 :(得分:0)

您可以将$row['vote_fb_uid']作为数组键

while ($row = mysql_fetch_assoc($res)){
        $savedResultsInNewArray[$row['vote_fb_uid']] = $row['vote_fb_name'];
}
$feedback = $savedResultsInNewArray;