2017-01-30 21 views
1

私は自分の質問にタイトルを付ける方法がわかりませんでしたが、基本的に誰かがこれにアプローチする良い方法を知っているかどうか尋ねています。よりコンパクトな方法またはelseifを各IDPHP/HTML SQLクエリからのドロップダウンで選択されたオプションを表示

function access_option($access) 
{ 
    if ($access == 0) 
    { 
     echo '<option value="0" selected>Member</option> 
     <option value="1">Streamer</option> 
     <option value="2">Moderator</option> 
     <option value="3">Manager</option> 
     <option value="4">Administrator</option> 
     <option value="5">Senior Administrator</option>'; 
    } 
    elseif ($access == 1) 
    { 
     echo '<option value="0">Member</option> 
     <option value="1" selected>Streamer</option> 
     <option value="2">Moderator</option> 
     <option value="3">Manager</option> 
     <option value="4">Administrator</option> 
     <option value="5">Senior Administrator</option>'; 
    } 
    elseif ($access == 2) 
    { 
     echo '<option value="0">Member</option> 
     <option value="1">Streamer</option> 
     <option value="2" selected>Moderator</option> 
     <option value="3">Manager</option> 
     <option value="4">Administrator</option> 
     <option value="5">Senior Administrator</option>'; 
    } 
    elseif ($access == 3) 
    { 
     echo '<option value="0">Member</option> 
     <option value="1">Streamer</option> 
     <option value="2">Moderator</option> 
     <option value="3" selected>Manager</option> 
     <option value="4">Administrator</option> 
     <option value="5">Senior Administrator</option>'; 
    } 
    elseif ($access == 4) 
    { 
     echo '<option value="0">Member</option> 
     <option value="1">Streamer</option> 
     <option value="2">Moderator</option> 
     <option value="3">Manager</option> 
     <option value="4" selected>Administrator</option> 
     <option value="5">Senior Administrator</option>'; 
    } 
    elseif ($access == 5) 
    { 
     echo '<option value="0">Member</option> 
     <option value="1">Streamer</option> 
     <option value="2">Moderator</option> 
     <option value="3">Manager</option> 
     <option value="4">Administrator</option> 
     <option value="5" selected>Senior Administrator</option>'; 
    } 
} 

よりも、この他を行うには良い方法があれば、私はDBから引っ張られるオプションを示すために、以下のこの機能を使用しています、私は思ったんだけど、このベストですそれを行う方法?あなたが三項演算子を使用して以下の繰り返しでそれを行うことができます

答えて

4

:別の答えとして述べたように

function access_option($access) 
{ 
    echo '<option value="0"'.($access == 0 ? ' selected' : '').'>Member</option>'; 
    echo '<option value="1"'.($access == 1 ? ' selected' : '').'>Streamer</option>'; 
    echo '<option value="2"'.($access == 2 ? ' selected' : '').'>Moderator</option>'; 
    echo '<option value="3"'.($access == 3 ? ' selected' : '').'>Manager</option>'; 
    echo '<option value="4"'.($access == 4 ? ' selected' : '').'>Administrator</option>'; 
    echo '<option value="5"'.($access == 5 ? ' selected' : '').'>Senior Administrator</option>'; 
} 
+1

おかげで、それは私が、私は助けることがうれしい – Faded

+0

探していたもの便利だと! – wogsland

0

三項演算子は、それのサイズを小さくします。 switch文を使用することもできます。 ifとelseifに似ていますが、簡単にコードを減らすことができます。

例:

<?php 
function access_option($access) 
{ 
switch ($access) { 
    case 0: echo "access equals 0"; 
    case 1: echo "access equals 1"; 
    case 2: echo "access equals 2"; 
} 
} 
?> 
3

ことはできアレイに保持され、かつ動的に選択された値を設定された値、をループ。このメソッドは、配列を調整することにより、将来的にオプションを追加/削除することが容易になります -

function access_option($access) 
{ 
    $options = ["Member", "Streamer", "Moderator", "Manager", "Administrator", "Senior Administrator"]; 
    foreach($options as $key=>$value) 
    { 
     echo '<option value="'.$key.'"'.($key==$access ? ' selected' : '').'>'.$value.'</option>'; 
    } 
} 
+0

私はこの解決策が好きです – Elgoots

+0

これは良いアプローチです。ありがとう – Faded

関連する問題