从选定的数据库中选择选项值

Jsm*_*ith 3 php mysql forms combobox

我有一个小问题。我有一个 edit.php 页面。此页面列出了可以编辑的产品信息。

我运行一个查询

while($rows=mysql_fetch_assoc($query)){


echo"<form method=\"POST\" action=\"edit.php\">";
echo "<input type ='hidden' name='ID' value = '{$rows['ID']}'>"; 
echo "Product:&nbsp <input type='text' name='product' value = '{$rows['ProductName']}'>"; 
Run Code Online (Sandbox Code Playgroud)

在 while 循环之前,我将详细信息存储在变量中,如下所示:

$hiddenid = $_POST['ID'];   
$productName = $_POST['product'];
Run Code Online (Sandbox Code Playgroud)

这有效。当我加载 php 表单时,它会显示从数据库中检索到的产品名称(在文本字段中)。但是问题是我想将产品名称存储为用户已经选择的下拉列表框,然后选择它。

所以,基本上我希望做的不是在文本框中显示数据库检索的选项,而是希望用户选择的选项显示在下拉列表框中。

我希望这是有道理的?为什么我的选项值根本没有显示,其次它们也没有显示 SELECTED 选项(从数据库中检索)。

请问有什么帮助吗?

小智 5

专注于这一领域,除非是复制错误,否则您应该会收到 PHP 错误。请注意以下更改:

while($rows=mysql_fetch_assoc($query)){
?>
    <form method=\"POST\" action=\"edit.php\">
    <input type ='hidden' name='ID' value = '<?php echo $rows['ID'];?>'>
    <select name ="pnames">
        <?php foreach ($arrayproducts as $key => $value) {
        ?>  
            <option value = "<?php echo $key; ?>" 
            <?php
                if ($key == $productName){
                    echo 'selected="selected"';
                } 
            ?> >
            <?php echo $value; ?> 
            </option>
     <?php } //end foreach ?>   
   </select>
<?php }//end while ?>
Run Code Online (Sandbox Code Playgroud)

一开始,您在 PHP 段中有纯 HTML 代码。

另外,我相信你想要

if ($value == $productName){
Run Code Online (Sandbox Code Playgroud)