2012-03-22 96 views
-1

在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) 
+0

你能告訴我們什麼'print_r($ request-> member_id);'打印? – AndrewR 2012-03-22 20:30:20

+0

更新了錯誤print_r($ request-> member_id);給出 – mstef 2012-03-22 20:40:13

+0

我認爲你的'strpos'行是錯誤的,但它看起來不像你的JavaScript通過任何一種方式發送一切。 – AndrewR 2012-03-22 20:47:19

回答

0

看起來好像你可能會覆蓋一些變量。也許嘗試:

function retrieve_members($request) { 
$member_ids = substr($request->member_id,0,-1); 

    foreach($member_ids as $member_id) { 

     $member = Member::retrieveById($request->db, $member_id); 
     $member_list = $member->getGroupMembers(); 
     $members = array(); 
     foreach ($member_list as $tempMember) { 
      array_push($members,array(
       'id' => $tempMember->id, 
       'screen_name' => $tempMember->screen_name, 
      )); 
     } 
    } 
return json_encode(array('status' => 'OK', 'member_list' => $members)); 
} 
+0

雙向成員變量在將代碼轉錄到stackoverflow時是我的錯誤,對不起!無論如何感謝捕捉。在我的實際代碼中,情況並非如此。更新了我原來的帖子。 – mstef 2012-03-22 20:45:04