0

ドロップダウンリストであるカテゴリで検索する必要がある検索フォームがあります.メンバーとカテゴリと呼ばれる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 } ?>

このコードで理解できない場所がいくつかあります。

  1. テキストボックスに入力した内容をエコーするはずですvalue="<?php echo $rc[ID]"が、 $rc[ID] は1,2,3,4,5の値を参照しますが、ドロップダウンリストの値については数字は表示されません。では、なぜこれをエコーするのですか?
  2. $_POST['Cat']私はそのようなフィールドを持っていないので、データベース内の何も参照していません.それは<form name="Cat">. $_POST['Cat']との一致を確認するために、これはどのように整数である必要がある値を取得しますか.$rc[ID]しかし、私が入力しているのはドロップダウンリストから特定の名前だけであるため、どのように整数値を取得しますか.
  3. " " は何にecho selected使用されますか?一致するものが見つかった場合に使用され、オプション タグは<option selected>この値がリストの一番上に表示されるようになります。
4

1 に答える 1

0
  1. value=<?php echo $rc[ID]これは、フォームを送信するときにデータベースにのみ使用されます。この値は、データベース テーブルに保存されます。 <option value='1'>Display Value</option>ここで 1 は db に保存され、値を表示するために使用される表示値はフロント エンドです。

  2. $_POST['Cat']これはデータベース値を参照していません。この値は、フォームを送信したときにのみ発生します。この場合、#rc[Name] と記述してから、ドロップダウンのみを表示する必要があります。

  3. の使用はecho selected、条件が一致すると、ドロップダウンリストの値が最初にのみ自動的に選択されることです。

アップデート:

<option value="<?php echo $rc[ID]; ?>$rc[ID]データベースからデータをフェッチするために使用しているため、選択ドロップダウンリストのポスト値を取得しているため、整数値が返さ れますSELECT ID,Name FROM categories ORDER BY Name

これが役に立ちますように

于 2013-07-28T04:20:14.440 に答える