2012-07-25 264 views
0

我正在製作一個網站來學習編碼,並且正在製作2個選擇下拉菜單,這些下拉列表將從數據庫表中填充 - > cat。另一個select下拉菜單將從table - > subcat中填充。貓和SUBCAT數據庫是這樣的:發送選擇下拉列表到另一個選擇下拉列表

表貓

ID(INT 15)|| cat(varchar 75)||數(INT 3)

表SUBCAT

ID(INT 15)|| subcat(varchar 75)|| catnumber(int 3)

每個子貓行都有一個catnumber,與cat - > number中的行相對應。例如,如果我們有貓的餐廳,其數量爲2,那麼如果我們也有美國食品,而中國食品的貓的數量是2,那麼它們是相對應的。

這是我的代碼,用於從我的所有貓的下拉列表中刪除數據庫。

<p><b>Cat1:</b><br /> 
<?php 
    $query="SELECT id,cat FROM cat"; 
    $result = mysql_query ($query); 
    echo"<select name='cselect1' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>"; 

    } 

    echo"</select>"; 
?> 

<!-- Next CAT --> 

<p><b>Cat2:</b><br /> 
<?php 
    $query="SELECT id,cat FROM cat"; 
    $result = mysql_query ($query); 
    echo"<select name='cselect2' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>"; 

    } 

    echo"</select>"; 
?> 

<!-- Next CAT --> 

<p><b>Cat3:</b><br /> 
<?php 
    $query="SELECT id,cat FROM cat"; 
    $result = mysql_query ($query); 
    echo"<select name='cselect3' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>"; 

    } 

    echo"</select>"; 
?> 

而且這裏是我拉出來的數據庫爲我SUBCAT的所有3下拉菜單

<p><b>Subcat1:</b><br /> 
<?php 
    $query="SELECT * FROM subcat WHERE catnumber='1' "; 
    $result = mysql_query ($query); 
    echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>"; 

    } 

    echo"</select>"; 
?> 
<p><b>Subcat2:</b><br /> 
<?php 
    $query="SELECT id,subcat FROM subcat WHERE catnumber='1' "; 
    $result = mysql_query ($query); 
    echo"<select name='sselect2' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>"; 

    } 

    echo"</select>"; 
?> 
<p><b>Subcat3:</b><br /> 
<?php 
    $query="SELECT id,subcat FROM subcat WHERE catnumber='1' "; 
    $result = mysql_query ($query); 
    echo"<select name='sselect3' class='e1'><option value='0'>Please Select A Category</option>"; 
    // printing the list box select command 
    while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt 
    echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>"; 

    } 

    echo"</select>"; 
?> 

代碼所以現在所有的SUBCAT選擇都試圖獲得的所有子類別1號貓(這是餐廳)。我如何獲得貓選擇的任何東西(無需刷新頁面)相應的子貓選擇顯示相應的子貓貓列表中的貓號碼?

^非常抱歉做了一個糟糕的工作解釋它。最後我基本上想要它像Yelps - >here

感謝您的幫助!

回答

2

您需要進行ajax調用以在後臺查詢數據庫,然後返回結果(如HTML)並填充您的子類別select。

<select name="cat" id="cat">...</select> 
<select name="subCat" id="subCat">...</select> 

<script language="javascript"> 
    $('#cat').change(function() { 
     $.post('getSubcat.php', { 
      cat: $(this).val() 
     }, function(data) { 
      $("#subCat").html(data); 
     } 
    }); 
</script> 

確保您getSubcat.php腳本相呼應的結果

<option value='whatever'>Label</option> 
<option value='whatever2'>Label2</option> ... 

getSubcat.php是一個簡單的查詢/輸出腳本:

<?php 
$category = $_POST['cat']; 

$query = "SELECT * FROM subcategories WHERE parent_category = " . $category; 
$result = mysql_query($query); 

echo "<option value='0'>Select a subcategory</option>"; 
while($row = mysql_fetch_array($result)) { 
    echo "<option value='" . $row['id'] . "'>" . $row['subcategory_name'] . "</option>"; 
} 

注:這是利用jQuery的 - 確保您的網頁包含jQuery庫

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
+0

對不起,我對getSubcat.php看起來有點困惑?對不起 - 我很新 – infinity 2012-07-25 18:39:18

+0

在編輯中添加了其他代碼。請注意,這是非常簡單的,不包括MySQL設置或錯誤處理。熟悉jQuery http://www.w3schools.com/jquery/default.asp和AJAX http://www.w3schools.com/ajax/default.asp – Matt 2012-07-25 18:45:22

+0

如果此答案適合您,請將其標記爲「回答。」我不想乞求代表點,但我需要代表點哈哈。 – Matt 2012-07-25 21:22:06

相關問題