我必須使用多個可相互修改的下拉菜單製作表單。菜單/數據庫表是:如何使用mysql和php製作級聯下拉列表
類別,樣式,類型和機制
我試圖用我有限的Ajax的知識要做到這一點,但似乎只訪問MySQL一次(初始頁)填充Categories表,但不能通過查詢下一組結果來更新樣式表。我收到一個聲明數據庫爲空的錯誤。
我也嘗試通過選項組填充下拉列表來處理類別和樣式,但只有類別標題顯示所有樣式子值顯示爲空白。我的代碼如下:
$query1="SELECT categories.category_id, categories.Category_Name ";
$query1.="FROM categories ";
$query1.="ORDER BY categories.Category_Name ASC";
$category_result=mysql_query($query1, $connection);
if(!$category_result){
die("Database query failed: " . mysql_error());
}
$options="";
$con=0;
while ($category_row=mysql_fetch_array($category_result)) {
$category_name=$category_row["Category_Name"];
$CategoryID=$category_row["category_id"];
$options.="<OPTGROUP LABEL=\"$category_name\"> <br />";
$query2="SELECT categories.category_id, categories.Category_Name, ";
$query2.="styles.style_id, styles.Style_Name ";
$query2.="FROM categories, styles ";
$query2.="WHERE styles.Category_ID = $CategoryID ";
$style_result=mysql_query($query2, $connection);
if(!$style_result){
die("Database query failed: " . mysql_error());
}
while ($style_row=mysql_fetch_array($style_result)) {
$style_name=$row["Style_Name"];
$id=$row["style_id"];
$options.="<OPTION VALUE=\"$id\" <a href=\"#\" onClick=\"javascript:swapContent('$style_name');\" >".$style_name.'</OPTION>';
}
$options.='</OPTGROUP> <br />';
}
?>
<SELECT NAME="category_id">
<OPTION VALUE=0></OPTION>
<?php echo $options ?>choose
</SELECT>
任何洞察到我做錯了將不勝感激!
[**請不要在新代碼'mysql_ *'功能** ](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – hakre
特別是在你的情況下,PDO結果的迭代器功能對你詢問的內容非常有用。 – hakre
@hakre我希望能夠在mysql中使用它,據我瞭解,在未來將所有內容切換到PDO之前......時間限制正在成爲他們目前的工作......但感謝您的支持! –