Jquery 在下拉框中选择数据时如何获得自动完成搜索

Jquery 在下拉框中选择数据时如何获得自动完成搜索,jquery,codeigniter,jquery-autocomplete,Jquery,Codeigniter,Jquery Autocomplete,Veiw代码如下所示 <select name ="dept" id="dept"> <option value="1">Software</option> <option value="2">Marketing</option> </select> <input name="section_name" id="section_name" type="text"> <input name="e

Veiw代码如下所示

<select name ="dept" id="dept">
   <option value="1">Software</option>
   <option value="2">Marketing</option>
</select>

<input name="section_name" id="section_name" type="text">
<input name="emp_id" id="emp_id" type="text">
$(document).ready(function() {
$('#section_name').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/section_name",
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
        }
    });
  });   
$('#emp_id').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/emp_id",
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
        }
    });
  });

});

软件
营销
Jquery代码如下所示

<select name ="dept" id="dept">
   <option value="1">Software</option>
   <option value="2">Marketing</option>
</select>

<input name="section_name" id="section_name" type="text">
<input name="emp_id" id="emp_id" type="text">
$(document).ready(function() {
$('#section_name').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/section_name",
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
        }
    });
  });   
$('#emp_id').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/emp_id",
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
        }
    });
  });

});
$(文档).ready(函数(){
$('#section_name').keydown(函数(){
$(此)。自动完成({
来源:“index.php/search\u con/section\u name”,
最小长度:0,
自动对焦:对,
选择:功能(事件、用户界面)
{
}
});
});   
$('#emp_id').keydown(函数(){
$(此)。自动完成({
来源:“index.php/search\u con/emp\u id”,
最小长度:0,
自动对焦:对,
选择:功能(事件、用户界面)
{
}
});
});
});
基本上我想,当我选择部门下拉列表时,它将在部分名称中自动完成,当在自动完成部分名称中搜索部分名称时,将在这里选择emp_id自动完成,我将执行搜索emp id

另一方面,我可以说,它将是部门下的部门名称和部门名称下的emp_id


我怎样才能成功解决,请任何人帮助我

根据需要制作两个隐藏字段或两个变量,但我会使用变量

当用户选择某个部门时,您应该告诉服务器在该部门中搜索,因此您需要修改BE代码,以便实现此目的

var current_department = ""; 

var current_lang = ""; 

//this will be called when ever the select changed 

$('#dept').change(function(){
current_department =  $(this).find(":selected").text();
}); 
在部门自动完成中,您需要发送变量 在这里,它将发送您可以设置的部门名称
val()
,而不是
text()
由您决定

现在自动完成应该是这样的

$('#section_name').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/section_name/"+current_department,
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
               //here you need to tell the next autocomplete what lang you selected e.g. PHP 
              current_lang = ui.item.value; //or .text it's up to you 
        }
    });
  });   
$('#section_name').keydown(函数(){
$(此)。自动完成({
来源:“index.php/search\u con/section\u name/”+当前部门,
最小长度:0,
自动对焦:对,
选择:功能(事件、用户界面)
{
//在这里,您需要告诉下一个自动完成您选择的语言,例如PHP
当前_lang=ui.item.value;//或.text由您决定
}
});
});   
所以下一个自动完成应该是这样的

$('#emp_id').keydown(function(){
    $(this).autocomplete({
        source: "<?php echo base_url(); ?>index.php/search_con/emp_id/"+current_lang,
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {
        }
    });
  });

});
$('#emp_id').keydown(函数(){
$(此)。自动完成({
来源:“index.php/search\u con/emp\u id/”+current\u lang,
最小长度:0,
自动对焦:对,
选择:功能(事件、用户界面)
{
}
});
});
});
请记住修改服务器端代码
我希望这能帮助您:)

请澄清,我还没有完全理解。。仍然是个人观点我的意思是,当我选择部门时,我将在自动完成搜索中获得部门名称,当我选择部门名称时,我将在自动完成搜索中获得emp_id。我可以用另一种方式说,我将在部门下获得部门名称,在部门名称下获得emp_id。我对你清楚吗Sedz.不,当你选择例如软件时,这让我更加困惑。你希望它在节名称输入中,然后发送到服务器还是什么?假设,软件部门有两个部分,例如PHP和JAVA,在PHP部分有两名员工Jone和Smith,JAVA有Jacky等。基本上,我希望在下拉框中选择软件部门,然后在自动完成框中出现部分名称(例如PHP和JAVA)在自动完成搜索中,我将输入/选择PHP,然后自动完成(如Jone和Smith)。我明白了,塞兹,看看我的答案