我是数据库编程的新手。我想知道如何在一个表单上调用两个表。
例如,我有2个名为" Car Brand"和"汽车模型"。每当用户从组合框中选择汽车品牌(例如BMW)时,另一个组合框应该列出所有型号的宝马汽车从汽车模型"表
我应该使用ajax,如果是这样,我该怎么办?我在网上搜索这个解决方案真的很难,因为我对这方面不是很熟悉。
希望通过这个问题学习如何。 感谢
顺便说一下,我正在使用PHP。
答案 0 :(得分:2)
我使用 jQuery AJAX 驱动的HTML数据从 MySql 表中使用两个下拉列表来解释这一点。
例如,我们有两个下拉列表" Car Brand "和" 汽车模型"。关于改变汽车品牌" dorpdown值,相应的" 汽车模型"下拉值将使用 jQuery AJAX 动态加载。
1)HTML :此代码包含" 汽车品牌"," 汽车模型"下拉列表。
<div class="frmDronpDown">
<div class="row">
<label>Car Brand:</label><br/>
<select name="brand" id="brand-list" class="demoInputBox" onChange="getState(this.value);">
<option value="">Select Car Brand</option>
<?php
foreach($results as $brand) {
?><option value="<?php echo $brand["id"]; ?>"><?php echo $brand["name"]; ?></option><?php
}
?>
</select>
</div>
<div class="row">
<label>Car Model:</label><br/>
<select name="model" id="model-list" class="demoInputBox">
<option value="">Select Car Model</option>
</select>
</div>
</div>
2)JQuery AJAX : 此脚本包含将在更改 Car Brand 下拉列值时调用的函数。它会将AJAX请求发送到 PHP 页面以获取相应的 Car Model 下拉选项。
<script>
function getState(val) {
$.ajax({
type: "POST",
url: "get_model.php",
data:'brand_id='+val,
success: function(data){
$("#model-list").html(data);
}
});
}
</script>
3)PHP :这个PHP代码连接数据库,根据jQuery AJAX调用传递的品牌ID检索模型表值。
<?php
require_once("dbcontroller.php");//Your connection...
$db_handle = new DBController();
if(!empty($_POST["brand_id"])) {
$query ="SELECT * FROM model WHERE brandID = '" . $_POST["brand_id"] . "'";
$results = $db_handle->runQuery($query);
?><option value="">Select Car Model</option><?php
foreach($results as $model) {
?><option value="<?php echo $model["id"]; ?>"><?php echo $model["name"]; ?></option><?php
}
}
?>
完成上述三个步骤后,您可以看到两个下拉呼叫&#34; 汽车品牌&#34;和&#34; 汽车模型&#34;。通过从&#34; 汽车品牌&#34;中选择可用的汽车品牌来查看结果下拉列表。
希望这对你有所帮助!
答案 1 :(得分:0)
您可以使用ajax功能。 使用jquery onchange事件从第一个下拉列表获取Brand并发送GET请求以使用ajax从数据库中获取所有相关模型。当您从数据库中获取模型列表时,只需在下拉列表中填充它。
您可以查看:First drop down menu to auto change the options of a second dropdown