2016-09-15 63 views
0

我有一個包含不同產品的數據庫。每種產品都有不同的顏色。我想要實現的是在下拉菜單中選擇產品可用的顏色,然後使用所選顏色的產品加載頁面。使用數據庫中的值填充下拉菜單

我有以下幾點: 該產品最初選擇如下:

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> 

但是菜單將不會填充 任何幫助,歡迎

+0

任何錯誤?是'$ resultp'不是空的? – momouu

+0

這和jquery有什麼關係? – madalinivascu

+0

我希望你的url中有product_id – madalinivascu

回答

2

從(我)的意見轉錄。

兩個明顯的錯誤是在這裏WHERE (Model = ':productcolor'

1)應刪除該托架(;那是一個解析錯誤。

2)圍繞佔位符的引號;那些需要被刪除。

Then $resultp->bindValue(':productcolor', $productcolor);你不能綁定一個「查詢」,你需要綁定一個值/數組。

您需要將$productcolor="SELECT ...中的變量重命名爲其他內容,並將該變量用於(GET)數組。

PHP的錯誤報告和P​​DO錯誤處理在這裏都有幫助。

參考文獻: