編集リンクのあるレコードのリストがあります。リンクをクリックすると、データベースからの結果を含む編集ページが表示されます。
すべてのテキスト ボックスのデータを正常に取得できます。
機能しない配列を介してこれを実装しようとしています。
コードフラグメントでの私の実装は次のとおりです。
# $data is from $data=mysqli_fetch_array($result)
$product=$data['product'];
echo $product.'<br />';
#initializing array to empty
$product_list=array("Remote"=>" ","TV"=>" ","Box"=>" ");
if (array_key_exists($product,$product_list)){
$product_list["'$product'"] = 'selected="selected" ';
}
print_r($product_list);
#combo box
<select name="products">
<option value="select">Select</option>
<option value="Remote"<?php echo @$product_list["'$product'"] ?>>Remote</option>
<option value="TV" <?php echo @$product_list["'$product'"] ?>> TV</option>
<option value="Box" <?php echo @$product_list["'$product'"] ?>> Box</option>
</select>
製品「リモート」を持つレコードで編集をヒットすると、すべてのレコードを表示するページで、次の出力が得られます (上記のエコーステートメントに従って):
Remote
Array ( [Remote] => [TV] => [Box] => ['Remote'] => selected="selected" )
HTML フォームが表示されます。
<select name="products">
<option value="select">Select</option>
<option selected="selected" value="Remote">Remote</option>
<option selected="selected" value="TV"> TV</option>
<option selected="selected" value="Box"> Box</option>
</select>
編集ページで、製品「TV」を持つレコードを選択すると、次の出力が得られます。
TV
Array ( [Remote] => [TV] => [Box] => ['TV'] => selected="selected" )
HTML出力は上記と同じです。そして、オプションは常に「ボックス」である最後の製品に設定されます。
誰かがこれを修正する方法についてアドバイスできますか? ありがとう!