显示数据库中的选定值

时间:2018-05-28 15:30:07

标签: javascript php mysql

我有一个表单,用户在添加产品时选择类别。

当用户想要编辑产品时,我显示所有以前填充的值,但无法弄清楚如何显示他选择的类别。

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 - 从数据库中提取的类别值(先前已选择)

2 个答案:

答案 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)

您的代码有两个问题:

  1. 您使用的是mysql函数,这些函数已被折旧,甚至不存在于当前版本的PHP中。使用mysqli或PDO函数。
  2. 您生成的html语法无效。
  3. 我将第一个问题留给您纠正。

    对于第二个问题,下拉列表中的所有未选定选项都不会具有所选属性。 只有选定的项目才具有该属性。下面的代码假定变量$ 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";
    }
    ?>