我需要有一个选择框,显示基于其正上方下拉框中选择的选项。一旦用户选择了汽车品牌,我希望汽车品牌的汽车型号成为要选择的选项。
我已经能够从我的mysql数据库中显示汽车品牌选项,但现在我只需要那个品牌的汽车模型。我的数据库有两个collmn,一个用于Make,另一个用于Model。
PHP的顶部是我获取make的方式,底部是我获取模型的尝试,但它显示了数百个模型,而不是我想要的几个。我听说AJAX或javascript可以自动上传结果,这会很好。任何帮助都很好。谢谢
</div>
<?php
mysql_connect('localhost', '*****', '******');
mysql_select_db('*************');
$sql = "SELECT Make FROM CarMakes";
$result = mysql_query($sql);
echo "<select name='carmake3'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['Make'] . "'>" . $row['Make'] . "</option>";
}
echo "</select>";
?>
<?php
mysql_connect('localhost', '******', '**********');
mysql_select_db('*************');
$sql = "SELECT Model FROM myTable";
$result = mysql_query($sql);
echo "<select class='modelbox' name='carmodel3'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['Model'] . "'>" . $row['Model'] . "</option>";
}
echo "</select>";
?>
<input type="text" maxlength="4" name="car3year" placeholder="year" class="WriteInBox"/>
<input type="text" maxlength="6" name="car3miles" placeholder="miles" class="WriteInBox"/>
</div>
$sql = "SELECT Model FROM myTable";
这显然是在给你想要的结果。它将选择所有型号。
您的sql应该看起来像
$sql = "SELECT Model FROM myTable WHERE Make='Make'";
where限制您只能检索与所选特定Make关联的模型。
要使用AJAX,您是否使用jQuery?使用Ajax调用的纯JavaScript?请提供更多信息来回答您的问题。
这可能不是最好的方法,但当我以前不得不做这样的事情时,我通常会使用php在我的头中填充一些javascript变量,然后使用javascript创建选择。此外,我假设你的数据库中有一些东西可以将某些车型映射到某些品牌的车辆。
<script>
var makes = new Array();
var models = new Array();
<?php
$sql = "SELECT Make FROM CarMakes";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
?>
makes[] = <?php echo json_encode($row['Make']); ?>;
<?php
}
$sql = "SELECT Make FROM CarMakes";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
?>
models[] = <?php echo json_encode($row['Model']); ?>;
<?php
}
?>
</script>
从这里,您可以创建select,并用make数组的元素填充第一个选项的选项。然后将onChange事件添加到第一个选择中,以填充第二个选择。
编辑选择创建:
<select id="make-select" onChange="updateModels()">
</select>
<select id="model-select">
</select>
<script>
$(function() {
$.each(makes, function (index, value) {
$(#make-select).append($('<option>') {
value: value,
text: value
});
});
}
</script>
然后只需创建一个名为updateModels
的函数,该函数将根据选定的make-select
值更新model-select
。同样,您需要一些将模型与数据库中的make关联起来的东西,然后您可能需要将makes
变量设置为对象,而不仅仅是数组。
var models = new Object()
<?php
$sql = "SELECT Model-Make, Model FROM CarMakes";
...
models.make = <?php echo json_encode($row['Model-Make']); ?>;
models.model = <?php echo json_encode($row['Model']); ?>;
...
?>