这有望成为一个简单的,但我缺乏技能!
<select name="search_category" id="select1" >
<option value="">By Category</option>
<?php if (!empty($_POST['search_category'])) { ?>
<option value="<?php echo $_POST['search_category']; ?>" selected="selected"><?php echo $_POST['search_category']; ?></option>
<?php }?>
<?php foreach($categoriesListt as $row) : ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->name; ?></option>
<?php endforeach; ?>
</select>
以上是搜索模块中众多选择之一。它从我页面中较高的查询返回一个动态的选项列表。我的目标是预先选择上次搜索的选项。一切都按预期工作,但我的问题确实很小;发布的搜索类别的值是一个ID($ row-&gt; id。我希望做的是使用关联的$ row-&gt;名称进行显示,但保留id值,以便我的搜索功能仍然有效。
换句话说,我希望做的事情如下:
<?php echo $row->name; WHERE ID = $_POST['search_category']
在上面的代码中是否有一种简单的方法可以做到这一点,或者我是否需要在页面顶部添加一个特殊的查询,获取与发布的id匹配的单个行名称?
谢谢!
编辑:为了简化,我已经有一个返回row-&gt; id和row-&gt; name的查询,我在foreach循环中使用它来填充我的选项值和名称。我只需要一种方法,或者我可以添加到查询中的一行,也可以获得与POSTED ID匹配的row-&gt;名称的值。
答案 0 :(得分:1)
我会编写一个简短的函数,即使对于其他应用程序也能提供此功能。 就像
<?php
function($id, $table) {
select ... etc
}
?>
出于安全原因,我建议使用Prepared Statements或mysql_escape
希望我能提供帮助
也许
SELCET('id', 'name' FROM yourTable WHERE 'name' = $_POST['ID'])
你的意思是这样的,或者你会选择下拉选项
<?php foreach($categoriesListt as $row) : ?>
<option value="<?php echo $row->id; ?>"
<?php if($row->name == $_POST['search_category']) : ?>
selected="selected"<?php } ?>>
<?php echo $row->name; ?>
</option>
<?php endforeach; ?>