我有一个搜索表单,我必须按类别搜索,这是一个下拉列表。有2个表称为成员和类别。在类别表中有两个字段作为ID和名称(此名称字段存储名称像银行,医院这样的类别。)。成员表有一个名为Category的字段,其类别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]
的匹配。但它是如何得到整数值的,因为我输入的所有内容都是从下拉列表中得到的特定名称。< / LI>
echo selected
”的用途是什么?找到匹配时是否使用,然后选项标签变为<option selected>
,以便此值弹出列表顶部答案 0 :(得分:0)
value=<?php echo $rc[ID]
这只适用于您的数据库
提交表单将此值存储到您的数据库表Ex。
<option value='1'>Display Value</option>
这里1是存储到db和
用于显示值的显示值是前端。
$_POST['Cat']
这不是指任何数据库值
只有在您提交表单时才会发生价值
写#rc [Name]然后只显示下拉列表。
使用echo selected
就是当你的情况符合时
仅选择下拉列表中的第一个值
自动
<强>更新强>
<option value="<?php echo $rc[ID]; ?>
给出整数值,因为您获得了选择下拉列表的后置值
$rc[ID]
提供了值,因为您用于从SELECT ID,Name FROM categories ORDER BY Name
这可以帮助你