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' ] }

上記のphpで設定したユーザーIDでinsertIDにアクセスしようとすると、JavaScriptで未定義になります。userID で各 insertID にアクセスできるようにするにはどうすればよいですか?

例えば:json.insertIDs[userID]

単純に呼び出すとjson.insertIDs[0]、最初のinsertIDが返されますが、複数ある場合は、各ユーザーIDの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

その foreach() ループ内に INSERT クエリがない限り、mysql_insert_id() によって返される値は毎回同じになるようです。コードの一部が欠落していますか?

于 2012-12-16T16:11:41.930 に答える