尝试一个foreach声明

时间:2014-01-24 02:21:42

标签: php html

我正在尝试做的是从以下数组中创建一个foreach,以便每个用户角色可以是select中的HTML选项。如果用户正在编辑,我也试图预先选择一个选项。

用户角色数组

Dump => array(5) {
    [0] => object(stdClass)#26 (2) {
        ["user_role_id"] => string(1) "1"
        ["user_role_name"] => string(5) "Guest"
    }
    [1] => object(stdClass)#27 (2) {
        ["user_role_id"] => string(1) "2"
        ["user_role_name"] => string(11) "Public User"
    }
    [2] => object(stdClass)#28 (2) {
        ["user_role_id"] => string(1) "3"
        ["user_role_name"] => string(9) "Moderator"
    }
    [3] => object(stdClass)#29 (2) {
        ["user_role_id"] => string(1) "4"
        ["user_role_name"] => string(13) "Administrator"
    }
    [4] => object(stdClass)#30 (2) {
        ["user_role_id"] => string(1) "5"
        ["user_role_name"] => string(20) "Master Administrator"
    }
}

<?php
dump_exit($user_roles);
foreach($user_roles AS $key => $value)
{
    foreach ($value AS $role)
    {

    }
    //echo '<option value="'.$key.'"'. $value->user_role_id == $key ? " selected=\"selected\"":"".'>'.$value->user_role_name.'</option>';
}
?>

UPDATE: 
I need it to see if $user_account object is present on the page because if it is that means that the user is being edited and I need it to match the user's current user_status_id with the option that fits in the dropdown.

Dump => object(stdClass)#31 (13) {
    ["user_role_id"] => string(1) "5"
}

2 个答案:

答案 0 :(得分:2)

只是为了完成我上面的答案,预选角色的版本。

if(isset($user_account)) $selected= $user_account->user_role_id;
else $selected = null;
echo '<select>';
foreach ($user_roles as $role) {
    echo "<option value='{$role->user_role_id}'";
    if($role->user_role_id==$selected) echo 'selected';
    echo ">{$role->user_role_name}</option>"; 
}
echo '</select>';

答案 1 :(得分:1)

<?php
echo '<select name="user_role">';
foreach($user_roles as $role) {
    echo "<option value='{$role->user_role_id}'>{$role->user_role_name}</option>";
}
echo '</select>';
?>
相关问题