ドロップダウンリストであるカテゴリで検索する必要がある検索フォームがあります.メンバーとカテゴリと呼ばれる2つのテーブルがあります.カテゴリテーブルには、IDと名前の2つのフィールドがあります(この名前フィールドには、次のようなカテゴリの名前が格納されますbank,hospital..).members テーブルには、Categories テーブルの ID 値と同じカテゴリの ID を持つ Category というフィールドがあります (メンバー テーブルのカテゴリ フィールドは外部キーです)。
ドロップダウンリストのコードは次のとおりです
<?php if($_GET['level']==2){ ?>
Category<select name="Cat" style="display:inline-block">
<option></option>
<?php $rs=mysql_query("SELECT ID,Name FROM categories ORDER BY Name");
while($rc=mysql_fetch_array($rs)){
?>
<option value="<?php echo $rc[ID]; ?>"
<? echo $_POST['Cat'];?>
<?php if($_POST['Cat']==$rc[ID])
echo 'selected'; ?> >
<?php echo $rc['Name']; ?></option>
<?php } ?>
</select>
<?php } ?>
このコードで理解できない場所がいくつかあります。
- テキストボックスに入力した内容をエコーするはずです
value="<?php echo $rc[ID]"
が、 $rc[ID] は1,2,3,4,5の値を参照しますが、ドロップダウンリストの値については数字は表示されません。では、なぜこれをエコーするのですか? $_POST['Cat']
私はそのようなフィールドを持っていないので、データベース内の何も参照していません.それは<form name="Cat">
.$_POST['Cat']
との一致を確認するために、これはどのように整数である必要がある値を取得しますか.$rc[ID]
しかし、私が入力しているのはドロップダウンリストから特定の名前だけであるため、どのように整数値を取得しますか.- " " は何に
echo selected
使用されますか?一致するものが見つかった場合に使用され、オプション タグは<option selected>
この値がリストの一番上に表示されるようになります。