2011-06-26 10 views
0

を使用してdropdrownフォームに「選択」を追加する:エレガントな方法は、私はこのようになりますフォームを持っているPHP

$guests = 2; // Just for testing 
$form = 'Guests<br /><select name="guests"> 
      <option value="0">0</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
      </select>'; 

しかし、ゲストのリストは100まで可能ですので、私はおそらくすべきではありませんどの値が手動で選択されているかをチェックします。

ユーザーがこのフォームを表示したときに、選択した値を選択した値にするにはどうすればよいでしょうか?

ありがとうございます!

+0

あなたは数字のみと(100まで)の境界に対してであることをテキスト入力して、両方の制限を使用することはできません何らかの理由は? – leon

+0

@leonドロップダウンリストは、この場合ユーザーに混同することは少なくなります。 – Genadinik

+0

@leonそれは良いアイデアですが、 – Ben

答えて

1
$guests = 2; // Just for testing 
$form = 'Guests<br /><select name="guests">'; 

for($i = 0; $i <= 100; $i++) 
    $form .= "<option value='$i'{$guest == $i ? ' selected=\'selected\'' : ''}>$i</option>"; 

$form .= '</select>'; 

EDIT:$i < 101)(あなたが隠しフィールドにし、document.readyに値にこの値を格納することができます...

3

私が通常動的選択メニューで行うことは、配列上のforeachループを使用し、各項目をチェックするだけです。

のような何か:

$dropdownName = "guests"; //Name of dropdown 
$defaultValue = "0"; //value to select if there isn't one already set 
$items = array('name'=>'value', 'anotherName'=>'anothervalue'); //items, name=>value 

echo '<select name="'.$dropdownName.'">'; //Start Select 

$selectedItem = (isset($_POST[$dropdownName])?$_POST[$dropdownName]:$defaultValue); //If a value is set, use it, otherwise use the default 

foreach ($items as $name=>$value) //build select 
{ 
    echo '<option value="'.$value.'"'.(($selectedItem == $value)?' selected="selected"':'').'>'.$name.'</option>'; 
} 
echo '</select>'; 
+2

'selected'を' selected = "selected" 'に置き換えると、フリーのXHTMLの正しさも得られます。 :-) –

+0

笑、知っておいてよかった、ありがとう – Ben

1

かなりお粗末でしたドロップダウンの選択された値を隠れた値の値の上に割り当てることができます。

動作しますが、一部のユーザーのための効率的ではないかもしれないソリューション...

関連する問題