0

1 つのクエリで、ユーザー テーブル内のすべてのユーザーの詳細を取得しています。

$userDetails =  $dbUser ->getAllUsers();

2 番目のクエリでは、選択したグループにあるユーザーの詳細を取得しています。

$groupMemberDetails = $dbGroupMembers ->getAllGroupMembers($groupId);

しかし、ユーザーが選択されたグループに属している場合は、それらを選択済みとして表示し、残りのユーザーを未選択として表示する必要があります。

次のコードを実行しましたが、正しく取得できません。

私を修正してください。

foreach ( $userDetails as $user ) {

    $userId = $user['user_id'];
    $userFirstName = $user['first_name'];
    $userName = '';

    $selected = "";
    foreach ( $groupMemberDetails as $groupMemberDetail ) {
        $groupMemberId = $groupMemberDetail['user_id'];
        if($groupMemberId == $userId) {
            $selected = "selected";
        }
        $isAdmin = $groupMemberDetail['is_owner'];
        if($isAdmin) {
            $userName = $userFirstName . "(admin)";
        } else {
            $userName = $userFirstName;
        }

    }
    echo '<option value="'.$userId.'" '.$selected.'>'. $userName . '</option>';
}
4

2 に答える 2

0

foreachの前に私は宣言しました

 $adminStr = "";

次に、if条件で私はこのように書いています

if($groupMemberId == $userId) { 
    $selected = "selected";

    $isAdmin = $groupMemberDetail['is_owner'];
    $adminStr = $isAdmin ? "(Admin)" : "";
}
于 2012-04-26T11:09:49.663 に答える
0

各ループで Selected をリセットする必要があります

  foreach ( $groupMemberDetails as $groupMemberDetail ) {
    $groupMemberId = $groupMemberDetail['user_id'];
    //You need this line
    $selected = '';

    if($groupMemberId == $userId) {
        $selected = "selected";
    }
于 2012-04-09T07:33:32.000 に答える