0

我需要有一个选择框显示选项,该选项基于其正上方下拉框中的选择。一旦用户选择了汽车制造商,我希望汽车制造商的汽车型号成为可供选择的选项。

我已经能够从我的 mysql 数据库中获得要显示的汽车制造商选项,但现在我只需要该制造商的汽车模型。我的数据库有两个列,一个用于制造,一个用于模型。

PHP 的顶部是我获取品牌的方式,底部是我尝试获取模型的方式,但它显示了数百个模型,而不仅仅是我想要的几个。听说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>
4

2 回答 2

0

这可能不是最好的方法,但是当我以前不得不做这样的事情时,我通常使用 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>

从这里,您可以创建选择并使用 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>

然后只需创建一个调用的函数,该函数updateModelsmodel-select根据 的选定值进行更新make-select。同样,您需要将模型与数据库中的品牌关联起来,然后您可能必须使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']); ?>;
    ...
?>
于 2013-08-21T20:52:09.380 回答
0
$sql = "SELECT Model FROM myTable";

这显然是给你你所要求的结果。它将选择所有模型。

你的 sql 应该看起来像

$sql = "SELECT Model FROM myTable WHERE Make='Make'";

where 限制您仅检索与您选择的特定 Make 关联的模型。

要使用 AJAX,您使用的是 jQuery 吗?直接使用 Ajax 调用的 JavaScript?请提供更多信息以回答您问题的这一部分。

于 2013-08-21T20:50:27.790 回答