我有一个相当复杂的情况,我需要工作,由于某种原因我几乎在那里,但仍然不完全。
在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中,当我尝试通过userID访问insertID时,我将其设置为上面的php,我只是得到了未定义的结果。我该怎么做才能通过userID访问每个insertID?
例如:json.insertIDs[userID]
如果我只是通过以下方式调用它:json.insertIDs[0]
它确实返回第一个insertID,但是当有多个时,我需要能够轻松访问每个usersID insertID。
答案 0 :(得分:0)
我不太确定你要做什么,因为在forloop $ insertID总是相同的值,但是:
似乎json.InsertIDs是json.InsertIds = Array(44)形式的数组;
您希望它在哪里为Array(3 => 44)
尝试从
更改你的forloopforeach($recipients as $userID){
$insertID = mysql_insert_id();
array_push($insertIDs, $array[$userID] = $insertID);
}
到
foreach($recipients as $userID){
$insertID = mysql_insert_id();
$insertIDs[$userID] = $insertID;
}
答案 1 :(得分:0)
似乎mysql_insert_id()返回的值每次都是相同的,除非在foreach()循环中有一个INSERT查询。是否缺少代码的一部分?