javascript - 如何根据在 php 和 javascript/jquery 中从数据库中选择另一个下拉列表来填充一个下拉列表
问题描述
我想根据其他的选择来填充下拉列表。这是数据库的样子。尝试了以下代码,但它没有给我任何结果。
make
id maker
2 Apple
3 Samsung
model
id make_id model
1 3 Galaxy S III
2 3 Galaxy S IV
3 2 iphone 5s
4 2 iphone 5
查询.php
class Queries{
public static function getMaker() {
$conn = DB::databaseConnection();
$sql = "SELECT * from make" ;
$stmt = $conn->prepare($sql);
if ($stmt->execute()) {
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
} else {
return null;
}
}
public static function getModel($make_id) {
$conn = DB::databaseConnection();
$sql = "SELECT * from model WHERE make_id = :make_id" ;
$stmt = $conn->prepare($sql);
$stmt->bindParam(':make_id', $make_id);
if ($stmt->execute()) {
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
} else {
return null;
}
}
}
mobilereg.php
$make_id = filter_input(INPUT_GET, "make_id");
require_once './pages/header.php';
require_once './functions/queries.php';
$maker = Queries::getMaker();
$model = Queries::getModel($make_id);
<div class="control-group form-group">
<div class="controls">
<label>Make</label>
<select class="form-control"name="maker"id="maker"onchange="get_models();">
<option selected disabled></option>
<?php
for ($i = 0; $i < count($maker); $i++) {
echo '<option value="' . $maker[$i]['id'] . '">' . $maker[$i]['maker'] . '</option>';
}
?>
</select>
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label>Model</label>
<select class="form-control" name="get_models" id="get_models">
<option selected disabled></option>
</select>
</div>
</div>
main.js
function get_models(){
var maker = $('#maker').val();
var dataString = "maker="+maker;
$.ajax({
type: "POST",
url: "functions.php",
data: dataString,
success: function(html)
{
$("#get_models").html(html);
}
});
}
函数.php
require_once './queries.php';
$make_id = filter_input(INPUT_POST, "make_id");
if($_POST){
$maker = $_POST['maker'];
if($maker!=''){
echo Queries::getModel($make_id);
echo "<select name='get_models'>";
echo "<option value='" . $row['make_id'] . "'>" . $row['model'] . "
</option>";
echo '</select>';
}
}
所以制造商和型号是两个下拉菜单。模型中的选项应基于我们在制造商下拉菜单中所做的选择。
我已经从这里的一个问题中引用了代码,但它根本不起作用。我猜问题出在functions.php中。我对 php 和 js 很陌生,任何帮助将不胜感激。TIA
解决方案
推荐阅读
- c++ - “未定义的类”作为 is_base_of 的参数
- javascript - BST插入方法JS获取无限循环
- linux - 在 bash 脚本中检查文件的所有者权限(多路径结果)
- asp.net-mvc - 与客户端版本相比,SignalR 在 Windows 服务中无法正常工作
- sql - SQL中的分区和连续
- selenium - 在硒的新标签中打开一个链接
- trello - 没有 createCard 操作的 Trello Card
- javascript - TypeError:无法读取受控组件中未定义错误的属性“名称”
- wordpress - 在 mapbox 令牌访问地理编码中选择哪些范围?
- git - 解决 Visual Studio 中的 Git 冲突,以便在链接源和服务器出现错误后提交