<select> выпадающее значение по умолчанию

У меня есть этот код:

if(isset($_POST['search'])) { $res1=mysql_query("SELECT * FROM aircraft where acode = '$_POST[ac]'") or die(mysql_error()); while($row=mysql_fetch_array($res1)) { $airc=$row['acode']; $amode=$row['amodel']; $stat=$row['status']; $rem=$row['remarks']; echo "<center><table><form name=\"frmMain\" method=\"post\"> <tr><td><font face=consolas><b>Aircraft Code:</b></font></td><td><input type=text name=arc value='$airc' readonly=readonly></td></tr> <tr><td><font face=consolas><b>Aircraft Model:*</b></font></td><td><input type=text name=am value='$amode'></td></tr> <tr><td><font face=consolas><b>Status:*</b></font></td><td><input type=text name=st value='$stat'></td></tr> <tr><td><font face=consolas><b>Remarks:*</b></font></td><td><input type=text name=rm value='$rem'></td></tr></table>"; } } 

При отправке кнопки «поиск» этот код отображает данные из таблицы самолетов. Пользователю разрешено обновлять данные с помощью знака (*).

введите описание изображения здесь

Поскольку статус по умолчанию (доступно, недоступно), я изменил это

  <tr><td><font face=consolas><b>Status:*</b></font></td><td><input type=text name=st value='$stat'></td></tr> 

к этому,

 <tr><td><font face=consolas><b>Status:*</b></font></td><td><select name=st> <option value=Available>Available</option> <option value='Not Available'>Not Available</option> </select></td></tr> 

Но я хочу, чтобы выпадающее меню имело значение по умолчанию в зависимости от $stat=$row['status']; так как это форма обновления.

Если получаемые данные имеют статус « Доступно », выпадающее меню должно иметь значение по умолчанию « Доступно ».

Как я могу это достичь? Я попробовал <select name=status value='$stat'> но он не работает. Любая помощь будет оценена. Благодаря!

Solutions Collecting From Web of "<select> выпадающее значение по умолчанию"

Просто поставьте selected="selected" в опции в зависимости от вашей $row['status'] ,

 <option selected="selected" value="available">Available</option> 
 <?php $status = "navail"; ?> <select name="sel"> <option value="avail" <?php if($status == "avail") echo "SELECTED";?> > Avail </option> <option value="navail" <?php if($status == "navail") echo "SELECTED";?> > Navail </option> </select> 

вы можете сделать это, используя следующий код:

 <?php $stat=$row['status']; $selected_a = ($stat == 'Available') ? 'selected' : '' ; $selected_b = ($stat == 'Not Available') ? 'selected' : '' ; ?> <select name=st> <option <?php echo $selected_a; ?> value='Available'>Available</option> <option <?php echo $selected_b; ?> value='Not Available'>Not Available</option> </select> 

write Доступно и недоступно в массив

 $theArray = array("Available","Not Available"); 

петля массив:

 <tr><td><font face=consolas><b>Status:*</b></font></td><td><select name=st> <?php foreach ($theArray as $key => $value) { if ($value == $stat) { echo('<option selected="selected" value='.$value.'>'.$value.'</option>'); } else { echo('<option value='.$value.'>'.$value.'</option>'); } } ?> </select></td></tr> 

и в каждом цикле мы проверяем, является ли значение в массиве таким же, как оно есть в переменной, если это так, мы помещаем выбранный там

понять логику?

Вы можете определить значение переменной с дополнительным тегом и пометить это как выбранное:

 <select name="role" id="role"> <!-- This is default define value using php variable $r --> <option selected="selected" value="<?php echo $r; ?>" disabled="disabled"><?php echo $r; ?></option> <!-- Other options values --> <option value="2">Option-2</option><option value="2">Option-2</option> </select> 
 <select name=status> <option value="available" <?php if($row['status']=="available") echo "selected=\"selected\""; ?>>Available</option> <option value="unavailable" <?php if($row['status']=="unavailable") echo "selected=\"selected\""; ?>>Unvailable</option> </select> 

В основном выбрано эхо = «выбран» для опции в зависимости от значения соответствующего поля.

Объявите параметры в массиве, например

$ arr = array ("available" => "available", "unavailable" => "unavailable");

и введите выпадающее значение, подобное этому

 echo form_dropdown("st", $arr, set_value("st", (isset($row['status'];) ? $row['status']; : "")) 

Это метод, обычно используемый в таких системах, как codeigniter .. Я думаю, что он работает и в основном php ..