使用mysql数据库在第一个下拉框的基础上自动填充第二个下拉框
Using a mysql data base to populate a second drop down box automatically based off of first drop down box
我需要有一个选择框,显示基于其正上方下拉框中选择的选项。一旦用户选择了汽车品牌,我希望汽车品牌的汽车型号成为要选择的选项。
我已经能够从我的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']); ?>;
...
?>
相关文章:
- 单击一个数据表,填充第二个数据表
- KnockoutJS-根据第一个组合框中选择的值填充第二个组合框
- 用第一个表单值(HTML、Javascript)填充第二个表单隐藏字段
- 使用Web服务根据对另一个下拉框的选择填充第二个下拉框以获取信息
- 根据 Wordpress 页面中的第一个下拉列表填充第二个下拉列表
- 如何根据第一个<选择>选项填充第二个<选择>选项
- 使用与第一个下拉框相同的值填充第二个下拉框 javascript.
- 下拉菜单动态填充第二个下拉菜单
- jQuery 根据第一个选择菜单中的值选择填充第二个选择菜单
- 使用mysql数据库在第一个下拉框的基础上自动填充第二个下拉框
- 根据第一个下拉列表结果填充第二个下拉列表
- 从第一个和更改操作属性填充第二个选择列表
- 在MVC中的同一视图中填充第二个模型:防止回发
- Select2使用ajax和php基于第一个(多个)选择填充第二个字段
- 根据PHP中选择的第一个下拉框填充第二个下拉框
- 在选择第一个选择框值后填充第二个选择框,如何在脚本中选择要编辑的值
- JS如何用第一个的minDate动态填充第二个日期选择器
- Jquery /ajax填充第二个下拉框并触发更改事件
- 如何基于第一个选择填充第二个选择菜单,基于第二个填充第三个选择菜单-使用Javascript
- 根据前一个输入文本填充第二个输入文本