2016-05-14 17 views
1

これを達成する方法については何も知らないので、助けが必要です。ユーザー入力に応じて選択オプションを並べ替える方法

<select> 
    <option>Sunday</option> 
    <option>Monday</option> 
    /* this option goes down to Saturday */ 
</select> 

、ユーザーのユーザーが火曜日選択し、後でそれを編集したいと仮定しましょう、データベースに挿入されたオプションを選択する必要があります。私はこのコードを持っています。今、私は見ることができますオプションは火曜日などになりたい:

<select> 
    <option>Sunday</option> 
    <option>Monday</option> 
    <option>Tuesday</option> /* this option will be the visible option before the user opens the selection */ 
</select> 

そして、私はPHPと出力され、データベースの情報に割り当てられた変数を介してこれを実現したい$dayので$day = 'Tuesday';どのように私はこれを実現するようにしてくださいますか?

+1

' Tuesday' – RiggsFolly

答えて

3

のすべてに適用することができますしかし、それは非常にエレガントではなく、取得しますコード化するのが難しく、もっと重要なのはを維持する場合、その選択には週7日間以上を含めることです。

したがって、曜日名とforeachループの配列を使用し、ユーザーが選択した日を含む変数$dayを使用します。

<?php 
$dow = array('Sunday','Monday','Tuesday','Wednesday', 
      'Thursday','Friday','Saturday'); 
?> 
<select name="DayOfWeek"> 

<?php 
    foreach ($dow as $d) : 
     $sel = $d == $day ? 'selected="selected"' : ''; 
     echo "<option $sel>$d</option>"; 
    endforeach; 
?> 
</select> 
1

あなたは、これは一例で試すことができ、あなたが

<select> 
    <option <?PHP echo $day=='Sunday' ? '"selected=selected"' : ''); ?>>Sunday</option> 
    <option <?PHP echo $day=='Monday' ? '"selected=selected"' : ''); ?>>Monday</option> 
    <option <?PHP echo $day=='Tuesday' ? '"selected=selected"' : ''); ?>>Tuesday</option> 

... 

</select> 

を行うことができますPHPの中からこれを行うにはオプションを選択

<select> 
    <option <?PHP echo ($day=='Tuesday' ? selected : ""); ?>>Tuesday</option> 
</select> 
関連する問題