0

我有一个搜索表单,我必须按类别搜索,这是一个下拉列表。有 2 个表称为成员和类别。在类别表中有两个字段作为 ID 和名称(此名称字段存储类别的名称,如bank,hospital..).members 表有一个名为 Category 的字段,该字段的类别 ID 与类别表 ID 值相同(成员表中的类别字段是外键)。

这是下拉列表的代码

<?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]这仅在您提交表单时用于数据库,此值存储到您的数据库表 Ex。 <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 回答