【发布时间】:2016-10-26 14:41:54
【问题描述】:
大家好,我目前正在创建一个主要功能是预订汽车的网站。因此,用户首先能够从数据库查询中选择一个汽车类别,该查询将输出所选汽车类别名称。选择汽车类别名称后,第二个选择框将动态更新一组与该类别相关联的新汽车名称。
可能有很多类似的问题,但是对于网站 NO 可以使用 jQuery 或 AJAX。其他问题和示例通常使用 2 个或更多表,但我仅使用 1 个表来实现此功能。
下面的示例应该显示应该如何更新选择框: Dynamically updated select box.
使用的表格是这样的: Table Utilized
我的代码是这样的:
<?php
session_start();
include "dbconn.php";
$query = "SELECT carid, brand FROM cars";
$result = $dbcnx->query($query);
while($row = $result->fetch_assoc()){
$subcats[] = array("id" => $row['carid'], "val" => $row['brand']);
}
$jsonSubCats = json_encode($subcats);
?>
<!docytpe html>
<html>
<head>
<script type='text/javascript'>
<?php
echo "var subcats = $jsonSubCats; \n";
?>
function loadCategories(){
var select = document.getElementById("categoriesSelect");
select.onchange = updateSubCats;
}
function updateSubCats(){
var catSelect = this;
var catid = this.value;
var subcatSelect = document.getElementById("subcatsSelect");
subcatSelect.options.length = 0; //delete all options if any present
for(var i = 0; i < subcats[catid].length; i++){
subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id);
}
}
</script>
</head>
<body onload='loadCategories()'>
Car Category:<br />
<select size="1" name="categoriesSelect" id="categoriesSelect">
<option> Select Car Category </option>
<option value="sedan"> Sedan </option>
<option value="mpv"> MPV </option>
<option value="hatch"> Hatchback </option>
</select><br /><br />
Car Brand:<br />
<select id='subcatsSelect'>
</select>
</body>
</html>
我可能已经确定了 php 语句的错误:
while($row = $result->fetch_assoc()){
$subcats[] = array("id" => $row['carid'], "val" => $row['brand']);
因为我只能看到第一个选择框查询正确包含 MPV、轿车和掀背车这 3 个汽车类别。
目前显示所有汽车品牌名称,但结果与数据库中显示的汽车类别不对应。
谢谢。
【问题讨论】:
标签: javascript php html mysql drop-down-menu