使用数据库中的值填充下拉菜单

时间:2016-09-15 10:53:49

标签: php jquery html

我有一个包含不同产品的数据库。每种产品都有不同的颜色。我想要实现的是在下拉菜单中选择产品可用的颜色,然后使用所选颜色的产品加载页面。

我有以下内容: 该产品最初选择如下:

if (isset($_GET['product_id'])) {
 $query_RS_Product = ("SELECT * FROM products WHERE id = :pid AND hidden ='no'");
 $RS_Product = $conn->prepare($query_RS_Product) or die(errorinfo());
$RS_Product->bindValue(':pid', $_GET['product_id']);
$RS_Product->execute();
$row_RS_Product =$RS_Product->fetch();

现在我想选择适用于此产品的颜色并创建一个下拉菜单

<form><select name="productColor" id="pColor" class="dropmenu" >

<?php  
    $productcolor = $row_RS_Product['Model'];
    $productcolor="SELECT * FROM products WHERE (Model = ':productcolor'  AND hidden ='no' ORDER BY Color";
    $resultp=$conn->prepare($productcolor);
    $resultp->bindValue(':productcolor', $productcolor );
    $resultp->execute();

    while ($pcolor = $resultp->fetch($productcolor)) {
        echo '<option value="Select Color">' . htmlspecialchars($pcolor['Color']) . '</option>';
    }
   ?>
</select>
</form>

但是菜单不会填充 欢迎任何帮助

1 个答案:

答案 0 :(得分:2)

转自(我的)评论。

这里有两个明显的错误WHERE (Model = ':productcolor'

1)应删除的(括号;那是一个解析错误。

2)占位符周围的引号;那些需要删除。

然后$resultp->bindValue(':productcolor', $productcolor );你无法绑定“查询”,你需要绑定一个值/数组。

您需要将$productcolor="SELECT ...中的变量重命名为其他内容,并将变量用于(GET)数组。

PHP的错误报告和P​​DO错误处理在这里都会有所帮助。

参考文献: