2012-03-22 14 views
-1

ajaxリクエストでは、画面名を取得するためにmember_idの配列を送信しています。ajaxリクエストで送信された配列を使用してPHP foreachが失敗します。関数に送信された正しいデータ

action retrieve_members 
member_id 45FA3B10-4546-B9F7-D23 
member_id 9627B65B-4D82-B2E8-4CE 

retrieve_membersで:コールが送信されたとき、私はその後、retrieve_members機能

Ext.Ajax.request({ 
        action: 'retrieve_members', 
        member_id: member_id, 
        success_fn: function(response) { 
        //do stuff 
        } 
       }); //end ajaxRequest 

のFirebugに送信してい

var member_id = []; 
    Ext.each(selected_rows, function(item) { 
     member_id.push(item.data.member_id); 
    }); 

はこれを示しています。次のようにメンバーIDが保存されています機能:

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_idをforeachに渡すための試行を数多く行ってきました。私は何が間違っているのか分からないが、これが立っているので、member_listはいつもnullに戻るだろう。どんな助けでも感謝しています!

更新: 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

+0

エラーprint_r($ request-> member_id)で更新されました。 – mstef

+0

私はあなたの 'strpos'行が間違っていると思いますが、あなたのjavascriptがいずれかを介してすべてを送信しているようには見えません。 – AndrewR

答えて

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

doubleover変数は、stackoverflowにコードを転記するときに間違いでした。申し訳ありません。関係なく、それをキャッチするためにありがとう。実際のコードではそうではありませんでした。オリジナルの投稿を更新しました。 – mstef

関連する問題