我有一个表单,用户在添加产品时选择类别。
当用户想要编辑产品时,我显示所有以前填充的值,但无法弄清楚如何显示他选择的类别。
addproduct.php(显示数据库中的类别) - 此代码工作正常,可以在下拉列表中看到所有类别
<?php
require'dbconn.php';
$subject = mysql_query("select * from categories", $link);;
while($subjectData = mysql_fetch_array($subject)){
echo $subjectData['value'];?>
<option value="<?php echo $subjectData['name'];?>"><?php echo
$subjectData['name'];?>
</option>
在编辑产品中,我想显示上面的所有类别,但希望以我无法做的形式显示所选类别。
editproduct.php(草稿代码粗略) - 无法正常工作
<?php
require'dbconn.php';
$subject = mysql_query("select * from categories", $link);;
while($subjectData = mysql_fetch_array($subject)){
echo $subjectData['value'];?>
<option select="<?php echo $cat;?>"value="<?php echo $subjectData['name'];?>"><?php echo
$subjectData['name'];?>
</option>
$ cat - 从数据库中提取的类别值(先前已选择)
答案 0 :(得分:0)
require'dbconn.php';
$subject = mysql_query("select * from categories", $link);;
<option value="<?php echo $cat;?>"><?php echo $cat;?></option>
while($subjectData = mysql_fetch_array($subject)){
echo $subjectData['value'];?>
<?php if($cat!=$subjectData['name']){?> <option value="<?
php echo $subjectData['name'];?>"><?php echo
$subjectData['name'];?>
</option>
<?php } ?>
尝试使用此代码,请使用mysqli,因为不推荐使用mysql。之前选择的类别应该在while循环之前。希望它有所帮助
答案 1 :(得分:0)
您的代码有两个问题:
我将第一个问题留给您纠正。
对于第二个问题,下拉列表中的所有未选定选项都不会具有所选属性。
只有选定的项目才具有该属性。下面的代码假定变量$ cat具有先前选择的值,并且每行都有一个
列名为“cat&#39;。当$ cat与列“cat&#39;”中的值匹配时,它会将selected='selected'
添加到该选项中。
<?php
require 'dbconn.php';
$subject = mysql_query("select * from categories", $link);;
while($subjectData = mysql_fetch_array($subject)){
echo $subjectData['value'];
$selected = "";
if($cat == $subjectData['cat']) {
$selected = "selected='selected' ";
}
echo "<option ".$selected."value=".$subjectData['name'].">";
echo $subjectData['name'];
echo "</option>\n";
}
?>