这是我创建n级别类别的代码。
function fetchCategoryTree($parent = 0, $spacing = '', $user_tree_array = '') {
if (!is_array($user_tree_array))
$user_tree_array = array();
$sql = "SELECT `cat_id`, `cat_name`, `parent_id` FROM `category` WHERE `parent_id` = $parent ORDER BY cat_id ASC";
$query = mysql_query($sql);
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_object($query)) {
$user_tree_array[] = array("id" => $row->cat_id, "name" => $spacing . $row->cat_name);
$user_tree_array = fetchCategoryTree($row->cat_id, $spacing . ' -', $user_tree_array );
}
}
return $user_tree_array;
}
$categoryList = fetchCategoryTree();
在下拉列表中显示所有类别
$id=$_GET['id'];
<td> Category:</td><td><select name="parentcat" id="parentcat" onchange="getText(this)">
<option selected value="Root">--Root Level--</option>
<?php
foreach($categoryList as $cl) {
?>
<option value="<?php echo $cl["id"] ?>"><?php echo $cl["name"]; ?></option>
<?php } ?>
现在我想在下拉列表中显示所选的父名称。如果类别名称为Laptop
,则其父名称为'Electronics
。我希望电子产品能够在下拉列表中出现。
我的数据库是这样的:
cat_id | cat_name | parent_id ------------------------------- 1 | Electronics| 0 ------------------------------- 2 | Laptops | 1
我希望在下拉列表中显示Electronics
如果我选择Laptops
。
答案 0 :(得分:0)
你怎么知道在哪里选择? $ _GET [&#39; id&#39;]
的示例function searchForId($id, $array) {
foreach ($array as $key => $val) {
if ($val['id'] === $id) {
return true;
}
}
return null;
}
$selected_id = (int)$_GET['id'];
?>
<option <?=(searchForId($selected_id,$categoryList))?'selected':''?> value="Root">--Root Level--</option>
<?php
foreach($categoryList as $cl) {
?>
<option value="<?php echo $cl["id"] ?>"><?php echo $cl["name"]; ?></option>
<?php } ?>