1

我有一个相当复杂的情况,我需要开始工作,出于某种原因,我快到了,但还没有完全到。

在 PHP 中,我创建数组并通过 json 将 javascript 发送给它,我很确定我的问题出在这部分代码中。

$insertIDs = array();

foreach($recipients as $userID)
{   
            //MySQL insert removed from question 
    $insertID = mysql_insert_id();
    array_push($insertIDs, $array[$userID] = $insertID);
}


$json = array();
$json['fromID'] = $session;
$json['insertIDs'] = $insertIDs;
    $json['recipients'] = $recipients;
echo json_encode($json);

当我在 javascript 中 console.log 的结果时,我得到:

{ messageID: 40,
  fromID: '1',
  insertIDs: [ 44 ],
  recipients: [ '3' ] }

现在在 javascript 中,当我尝试通过我在上面的 php 中设置的用户 ID 访问插入 ID 时,我只是得到未定义的结果。我该怎么做才能通过用户 ID 访问每个 insertID?

例如:json.insertIDs[userID]

如果我简单地调用它:json.insertIDs[0]它确实返回第一个 insertID,但是当有多个时,我需要能够有一种简单的方法来访问每个 usersID insertID。

4

2 回答 2

0

我不太确定您要做什么,因为在 forloop 中 $insertID 始终是相同的值,但是:

似乎 json.InsertIDs 是 json.InsertIds = Array(44); 形式的数组;

你希望它在哪里 Array(3 => 44)

尝试改变你的forloop

foreach($recipients as $userID){   
$insertID = mysql_insert_id();
array_push($insertIDs, $array[$userID] = $insertID);
}

foreach($recipients as $userID){   
    $insertID = mysql_insert_id();
    $insertIDs[$userID] = $insertID;
}
于 2012-12-16T15:44:56.173 回答
0

似乎 mysql_insert_id() 返回的值每次都是相同的,除非该 foreach() 循环中有一个 INSERT 查询。是否缺少部分代码?

于 2012-12-16T16:11:41.930 回答