Reputation: 415
What I'm attempting to do is make a foreach out of the following array so that each of the user roles can be an HTML option inside of a select. I am also trying to attempt to have an option pre-selected if the user being edited.
User Roles Array
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"
}
Upvotes: 0
Views: 75
Reputation: 76
Just to complete the answer above me, version with preselected role.
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>';
Upvotes: 2
Reputation: 2980
<?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>';
?>
Upvotes: 1