在ajax請求中,我發送一個member_id的數組以獲取屏幕名稱。會員ID的存儲如下:PHP foreach使用通過ajax請求失敗發送的數組。正確的數據發送到功能
var member_id = [];
Ext.each(selected_rows, function(item) {
member_id.push(item.data.member_id);
});
我然後將它們發送到retrieve_members功能
Ext.Ajax.request({
action: 'retrieve_members',
member_id: member_id,
success_fn: function(response) {
//do stuff
}
}); //end ajaxRequest
螢火顯示了這個當發送呼叫:
action retrieve_members
member_id 45FA3B10-4546-B9F7-D23
member_id 9627B65B-4D82-B2E8-4CE
在retrieve_members功能:
function retrieve_members($request) {
$member_ids = substr($request->member_id,0,-1);
foreach($member_ids as $member_id) {
$current_member = Member::retrieveById($request->db, $member_id);
$member_list = $current_member->getGroupMembers();
$members = array();
foreach ($member_list as $member) {
$member_list[] = array(
'id' => $member->id,
'screen_name' => $member->screen_name,
);
}
}
return json_encode(array('status' => 'OK', 'member_list' => $member_list));
}
如果我刪除的foreach和替換下面的行:
$member = Member::retrieveById($request->db, $request->$member_id);
我得到正確的數據傳回的1名成員。我知道「substr($ request-> member_id,0,-1);」可能是錯誤的,但我已經做了很多嘗試,將正確的member_ids傳遞給foreach。我不確定我做錯了什麼,但是如果這樣做的話,member_list將始終返回null。任何幫助表示讚賞,謝謝!
UPDATE: print_r($ request-> member_id);返回以下錯誤:
identifier starts immediately after numeric literal
[Break On This Error]
(9627B65B-4D82-B2E8-4CE)
你能告訴我們什麼'print_r($ request-> member_id);'打印? – AndrewR 2012-03-22 20:30:20
更新了錯誤print_r($ request-> member_id);給出 – mstef 2012-03-22 20:40:13
我認爲你的'strpos'行是錯誤的,但它看起來不像你的JavaScript通過任何一種方式發送一切。 – AndrewR 2012-03-22 20:47:19