web-dev-qa-db-ja.com

<選択>ドロップダウンのデフォルト値

私はこのコードを持っています:

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>";
    }
}

「検索」ボタンを送信すると、このコードは航空機テーブルのデータを表示します。ユーザーは(*)記号でデータを更新できます。

enter image description here

ステータスはデフォルトで次のとおりです(利用可能、利用不可)ので、これを変更しました

 <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'>を試しましたが、機能しません。どんな助けでもありがたいです。ありがとう!

7
xjshiya

selected="selected"に応じて、オプションに$row['status']を入力するだけです。

<option selected="selected" value="available">Available</option>
12
Vinay

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>

そして、各ループで、配列の値が変数の値と同じであるかどうかを確認します。同じである場合は、選択した値をそこに配置します。

論理を理解しますか?

3
Sam Janssens

追加のオプションタグを使用して変数値を定義し、次のように選択済みとしてマークすることができます。

<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>
1
A.Aleem11
<?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>
1
amitchhajer

以下のコードを使用してこれを行うことができます:

<?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>
1

次のような配列でオプションを宣言します

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

このようにドロップダウンを入力します

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

これは、codeigniterなどのフレームワークで一般的に使用されている方法です。コアPHPでも機能すると思います。

0
jeswin

ここで初めてですが、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」であると仮定して、試してみてください。

0
justin
<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"をエコーし​​ます。

0
Rohan Sood