从以前的SELECT框PHP - SQL Server中过滤SELECT框

时间:2014-01-23 22:32:38

标签: php sql sql-server-2008

我有几个从数据库中提取的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);
}?> 

2 个答案:

答案 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,这让生活变得困难。

This I found as my solution