2012-10-28 29 views
0

我想創建一個多級下拉菜單,希望使用PHP,因爲我沒有JavaScript的經驗,但我也願意學習。爲了讓大家更容易理解我正在使用汽車作爲例子。我希望用戶選擇一個「品牌」的例子福特,然後第二個下拉將填充福特汽車的「模型」,最後第三個下拉將填充福特汽車的「顏色」。我正在使用一個MySQL數據庫,我想從動態獲取所有數據,而不是對其中的值進行硬編碼。我可以獲得第一個下拉列表以填充「品牌」,但是當我選擇「品牌」時下拉式不會填充新的結果。我是PHP和MySQL的新手,但學習速度非常快。這裏是我的代碼:動態多級下拉使用MySQL數據庫

INSERT_DROPDOWN.PHP

<?php 
$con = mysql_connect("localhost","username","XXXXXXXXXX"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("database", $con); 

// Write out BRANDS. 
$dquery = "SELECT brand FROM manufacture ORDER BY brand"; 
// Execute it, or return the error message if there's a problem. 
$dresult = mysql_query($dquery) or die(mysql_error()); 

// Write out MODELS. 
$dquery1 = "SELECT 'brand', 'model' FROM models WHERE brand='$dresult' ORDER BY model"; 
// Execute it, or return the error message if there's a problem. 
$dresult1 = mysql_query($dquery1) or die(mysql_error()); 


// Write out COLORS. 
$dquery2 = "SELECT color FROM color ORDER BY color"; 
// Execute it, or return the error message if there's a problem. 
$dresult2 = mysql_query($dquery2) or die(mysql_error()); 

// if successful insert data into database, displays message "Successful". 
if($dresult){ 
echo "Successful"; 
echo "<BR />"; 
} 

else { 
echo "ERROR1"; 
} 

// close connection 
mysql_close(); 
?> 

TESTING.PHP

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
      <LINK href="CLL.css" rel="stylesheet" type="text/css"> 
     <title> 
      testing 
     </title> 
    </head> 
    <body> 

<?php 
require "insert_dropdown.php"; 
?> 

<p> 
    <?php 
    //Brand 
    $dropdown = "<select name='brand'>"; 
     while($row = mysql_fetch_assoc($dresult)) 
    { 

    $dropdown .= "\r\n<option value='{$row['brand']}'>{$row['brand']}</option>"; 

    } 

    $dropdown .= "\r\n</select>"; 
    echo $dropdown; 

    //Model 
     $dropdown1 = "<select name='brand'>"; 
     while($row1 = mysql_fetch_assoc($dresult1)) 
    { 

    $dropdown1 .= "\r\n<option value='{$row1['model']}'>{$row['brand']}</option>"; 

    } 

    $dropdown1 .= "\r\n</select>"; 
    echo $dropdown1; 

    //Color 
     $dropdown = "<select name='name'>"; 
     while($row = mysql_fetch_assoc($dresult2)) 
    { 

    $dropdown .= "\r\n<option value='{$row['color']}'>{$row['color']}</option>"; 

    } 

    $dropdown .= "\r\n</select>"; 
    echo $dropdown; 
    ?> 
</p> 
    </body> 
</html> 
+1

固定的代碼,我知道你說你是一個初學者,但如果你實際上沒有使用代碼,你會如何期待事情發生?你說你希望第二個下拉菜單基於第一個下拉菜單填充......但是你沒有使用任何類型的「onchange」操作來做你想做的事 - 瀏覽器不會奇蹟般地知道你想要這個發生。你的代碼似乎對數據庫進行了3次查詢,並在頁面上填充了3個'