Theres gotta be a better way to do this

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Little Spy
Forum Commoner
Posts: 31
Joined: Thu Oct 10, 2002 8:18 pm
Contact:

Theres gotta be a better way to do this

Post by Little Spy »

$data['userlevel'] is the admin level of the user taken from the data base in the modify user form i have this snippet

Code: Select all

if ($dataї'userlevel'] == "0") {
          <select size="1" name="member_modify_userlevel">
          <option value="0" selected>0 - Normal User</option>
          <option value="1">1 - SiteOP</option>
          <option value="2">2 - SiteOp+</option>
          <option value="3">3 - SuperOp</option>
          </select>
          &#125;
          elseif ($data&#1111;'userlevel'] == "1") &#123;
          <select size="1" name="member_modify_userlevel">
          <option value="0" selected>0 - Normal User</option>
          <option value="1" selected>1 - SiteOP</option>
          <option value="2">2 - SiteOp+</option>
          <option value="3">3 - SuperOp</option>
          </select>
          &#125;
          elseif ($data&#1111;'userlevel'] == "2") &#123;
          <select size="1" name="member_modify_userlevel">
          <option value="0" selected>0 - Normal User</option>
          <option value="1">1 - SiteOP</option>
          <option value="2" selected>2 - SiteOp+</option>
          <option value="3">3 - SuperOp</option>
          </select>
          &#125;
          elseif ($data&#1111;'userlevel'] == "3") &#123;
          <select size="1" name="member_modify_userlevel">
          <option value="0">0 - Normal User</option>
          <option value="1">1 - SiteOP</option>
          <option value="2">2 - SiteOp+</option>
          <option value="3" selected>3 - SuperOp</option>
          </select>
          &#125;
to make the userlevel they currently are be selected, i really hate to do it this way does anyone know a better way?
User avatar
Takuma
Forum Regular
Posts: 931
Joined: Sun Aug 04, 2002 10:24 am
Location: UK
Contact:

Post by Takuma »

You couls use SWITCH instead of IF and also try printing out the <select> first.
User avatar
phpScott
DevNet Resident
Posts: 1206
Joined: Wed Oct 09, 2002 6:51 pm
Location: Keele, U.K.

try this

Post by phpScott »

Try this alternative. It's not as elegant as I would like but it will make updating your script a little easier.

Code: Select all

&lt;?php
$select0="";
$select1="";
$select2="";
$select3="";
switch ($data&#1111;'userlevel'])
{
    case "0":
          $select0="selected";
          break;
    case "1":
          $select1="selected";
          break;
    case "2":
          $select2="selected";
          break;
    case "3":
          $select3="selected";
          break;
}
$selectBox = " &lt;select size='1' name='member_modify_userlevel'&gt;";
$selectBox .=" &lt;option value='0' $select0&gt;0 - Normal User&lt;/option&gt;";
$selectBox .=" &lt;option value='1' $select1&gt;1 - SiteOP&lt;/option&gt;";
$selectBox .=" &lt;option value='2' $select2&gt;2 - SiteOp+&lt;/option&gt;";
$selectBox .=" &lt;option value='3' $select3&gt;3 - SuperOp&lt;/option&gt;";
$selectBox .=" &lt;/select&gt;";
print $selectBox;
?&gt;

phpScott
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

there are thousands of ways ;)

Code: Select all

&lt;select name="member_modify_userlevel"&gt;&lt;?php
$desc = array(0=&gt;'Normal User', 1=&gt;'SiteOP', 2=&gt;'SiteOp+', 3=&gt;'SuperOp');
foreach($desc as $key=&gt;$value)
	echo '&lt;option value="', $key, ($key==$data&#1111;'userlevel']) ? '" selected="selected"&gt;':'"&gt;', $value, '&lt;/option&gt;';
?&gt;&lt;/select&gt;
hmm....my phoenix/mozilla doesn't recognize the selected-property but IE does :evil:
Post Reply