我有几个从数据库中提取的SELECT框,如何在SELECT框1中选择选项来过滤SELECT框2中的SQL?
EG SELECT 1 - 制造(奥迪,宝马)SELECT 2 - 型号(A1,A3,1系列,3系列)
我想表明,如果我从SELECT 1选择奥迪,它将使用奥迪填充我的SQL中的WHERE子句来过滤SELECT 2
<label>Manufacturer</label>
<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="make" name="make" >
<option value=""></option>
<?php $sqlmake = odbc_exec($cnn, "SELECT DISTINCT Manufacturer FROM lkup.alldata ORDER BY Manufacturer ");
while($manurs = odbc_fetch_array($sqlmake)) {
echo '<option value="'. $manurs['Manufacturer'] .'">'. $manurs['Manufacturer'] .'</option>';
}
?>
</select>
从上面开始我一直在讨论这个问题,它没有返回错误,但是当你点击SELECT时,SELECT中没有返回任何值。
我哪里误入歧途?
我的选择
<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="model" name="model">
<option value=""></option>
</select>
<script>
$(function() {
$('.make').change(function() {
var select = $('.model').empty();
$.get('assets/configs/script.php', {model: $(this).val()}, function(result) {
$.each(result, function(i, item) {
$('<option value="' + item.value + '">' + item.name + '</option>').
appendTo(select);
});
});
});
});
</script>
script.php
<?php
session_start();
date_default_timezone_set("Europe/London");
error_reporting(0);
include 'config.php'; //my db settings
if (isset($_GET['model'])) {
$model = addslashes($_GET['model']);
$sqlmodel = odbc_exec($cnn, "SELECT DISTINCT ModelName FROM lkup.MyTable WHERE ModelName IS NOT NULL AND Make = $model ORDER BY ModelName ");
$modelrs = array();
while ($row = $sqlmodel->fetch_assoc()) {
$modelrs[] = array(
'ModelName' => $modelrs['ModelName']
);
}
echo json_encode($modelrs);
}?>
答案 0 :(得分:0)
如果您熟悉javascript或jQuery,则可以运行另一个php echo语句来创建具有所有可能性的其他选择选项,然后使用jQuery隐藏或显示相应的选项。
$('select[name=first_select]').on('change', function(){
var make = $(this).val();
$.each($('select[name=second_select] option'), function(){
if($(this).prop('class') != make){
$(this).hide();
}
}
});
答案 1 :(得分:0)
在遇到很多问题后,我发现这个链接很有效。我认为我的主要问题是我正在使用PHP&amp; MS SQL Server,这让生活变得困难。