有两个下拉列表,分别叫汽车品牌(brand)和车系(series),需要从数据库读取内容。
在选择汽车品牌时,在数据库中查询车系这个表以实现联动。
并且,将另外一张表叫car的内容查询出来并显示在页面。car表连接到brand和series两张表。car表字段:id,brand_id,series_id
brand 表字段:id,name
series 表字段:id,name应该怎么做呢?纠结了好几天了!
我用c写的cgi并且用js处理的

解决方案 »

  1.   

    错了!series 表字段:id,name,brand_id
      

  2.   

    需要用到ajax,你用到数据库了,肯定不能在前台处理的,你需要传输到后台,然后让后台查询,然后页面不能刷新
    进入页面的时候就把brand这个表里的东西查询出来,然后根据这个brand的id关联查询series里的数据,你的car表做什么用的?
      

  3.   

    我的car表是用来保存汽车信息的,但是里边都时int 型的外键当用户选择了相应的汽车品牌品牌和车系后,显示car表信息的页面。我现在已经获得了brand,serise表信息,并存储到一个结构体中,但是不知道怎么实现联动,还有如何让car表相应的信息显示到页面
      

  4.   


    我的car表是用来保存汽车信息的,但是里边都时int 型的外键当用户选择了相应的汽车品牌品牌和车系后,显示car表信息的页面。我现在已经获得了brand,serise表信息,并存储到一个结构体中,但是不知道怎么实现联动,还有如何让car表相应的信息显示到页面
      

  5.   

    联动还可以,但是你那个car显示信息,我始终不明白,都有表关系了,为什么还要多一张表来存?
      

  6.   

    联动我刚才已经说过了的,就是你在加载页面的时候,就把第一个下拉框里的值取到,brand的id和name都拿出来
    然后你选中某个brand的时候,触发change的事件(js)然后在把你得到的值传到后台调用,判断传回去的值,和你的series的表里的brand_id是否一样
    select id,name from series where brand_id = 前面传回来的那个值,你把值放到一个list或者可以遍历的对象里,在前台的另一个下拉框遍历就可以了
    只是很不明白的是,你的car表基本上用不到,为什么要存在?
      

  7.   


    是这样的,我的car表存放了汽车品牌,车系,价格,车型等信息的id号,都是int型的。现在我要将这些信息,根据客户在下拉列表中的选择,查询出来。而我现在要把汽车品牌和车系联动,价格和车型联动。我刚开始学,对这些东西也不很了解...公司急着要....
      

  8.   

    你的意思是,除了查询那个series表的字段之外,还要查询car表,然后一起显示的?
    那你就前面还是那么查询,后面的时候,根据series的id和brand的id来查询car里的数据就可以了吧,就是查两次,但是也是页面不刷新
      

  9.   

    恩,思路大概明白了,只是怎么确定用户选中了哪个brand呢?具体怎么判断?
      

  10.   

    用js里的change事件来判断你把value设置成id就可以了,然后在js里获得这个值,在传到后台
      

  11.   


     $(document).ready(function() {
     $("#brand_id").change(function(){
         var district_id=$("#brand_id").val();
         $("#series_id").get(0).options.length=0;
         $("#series_id").append("<option>-请选择-</option>");
      $.get("你要向后台传输的那个方法,function(response){
      var sa=response.split(","); 
      for(var i=0;i<sa.length-1;i++){
    $("#series_id").append("<option>"+sa[i]+"</option>");
    }
        });
      });
    });
    我也是刚工作,用的jquery,ajax都封装好了,ajax我也不会写,你可以看下
    这个不完全,你可以自己看看
      

  12.   

    恩 谢谢,但是我不知道你的代码我能不能用,因为前台是写好了的,我只需要弄后台,他的html这样写的:
     <div id="news_body">   <div class="newbox">   <div class="selc_ctrl">   <div class="selc_box"> <select name="a" class="styled">   <option value="1">Option 1</option>   <option value="2">Option 2</option>   <option value="3">Option 3</option> </select> </div>   <div class="selc_box"> <select name="b" class="styled">   <option value="1">Option 1</option>   <option value="2">Option 2</option>   <option value="3">Option 3</option> </select> </div>我需要用cgi处理它,这个我都知道,就是对js 和 cgi 交互不了解,还有数据库....我这样处理 了以下,但是还是不对,以下是我的cgi部分:/*************** 下拉列表信息****************************************************************************/ printf("<select id= \"brandid\" name=\"brandname\" class=\"styled\" onchange= \"getBrand(this.options[this.selectedIndex].value)\">");

    //发送表单
    /********************************************************/ //document.getElementById('dishId').value= %d;
    for(i=0;i<brandstop;i++)
    {
    brindid = brand[i].id
    printf("<option value=\"%d\">%s</option>",brandid,brand[i].name);
    }
    printf("</select>");
    printf("</div>");


    /******************下拉列表信息2***********************/
    printf("<div class=\"selc_box\">");
    printf("<select  id=\"seriesid\" name=\"series\" class=\"styled\">" );

    //printf("<option>--请选择车系--</option>");
    for(i=0;i<seriesstop;i++)
    {
    printf("<option value=\"1\">%s</option>",series[i].name);
    }

    printf("</select>");
    printf("</div>");


    哪里错了呢?
     
      

  13.   

    cgi没用过,js得到值var district_id=$("#brand_id").val();就是取值了,你看看能不能传到后台调用···