私はこのコードを持っています:
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'];
に応じたデフォルト値を設定する必要があります。
取得するデータのステータスが「Available」の場合、ドロップダウンのデフォルト値は「Available」になります。 '。
どうすればそれを達成できますか? <select name=status value='$stat'>
を試しましたが、機能しません。どんな助けでもありがたいです。ありがとう!
selected="selected"
に応じて、オプションに$row['status']
を入力するだけです。
<option selected="selected" value="available">Available</option>
availableとUnavailableを配列に書き込みます
$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>
<?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>
次のような配列でオプションを宣言します
$ arr = array( "available" => "available"、 "unavailable" => "unavailable");
このようにドロップダウンを入力します
echo form_dropdown("st", $arr, set_value("st", (isset($row['status'];) ? $row['status']; : ""))
これは、codeigniterなどのフレームワークで一般的に使用されている方法です。コアPHPでも機能すると思います。
ここで初めてですが、phpで基本的な原則を使用してみましたが、これが役立つかどうかはわかりませんが、データベースに入力したデフォルト値を取得して、もう一度編集する場合は、これを試してみることをお勧めします
<select name="st">
<?php if($row['status']=="Available"){?><option value="Available">Available</option><?php }?>
<?php if($row['status']=="Unavailable"){?><option value="Unavailable">Unavailable</option><?php }?>
</select>
データベースの列名が「status」であると仮定して、試してみてください。
<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>
基本的に、関連するフィールドの値に応じて、オプションのselected = "selected"をエコーします。