我正在使用jquery ui autocomplete来显示来自db的建议。我正在将输入文本和下拉列表的选定值传递给控制器函数。这是jsfiddle(不起作用)
问题:source: url+"?search_column="+column
中的列值始终是用户名。如何将下拉列表的动态值传递给自动完成方法。
查看
<?php echo form_open('admin/index','class="form-inline"'); ?>
<input id='admin_auto_search' type="text" class="span3" placeholder="Search..">
<select class="span2" name="search_column" id="search_column">
<option value="username">Username</option>
<option value="created_on">Created On</option>
<option value="first_name">First Name</option>
<option value="last_name">Last Name</option>
<option value="company">Company</option>
<option value="timezone">Time Zone</option>
<option value="plan">Plan</option>
</select>
<input type="submit" class="btn btn-primary" value="Search" />
<?php echo form_close();?>
SCRIPT
$(function(){
var url='<?php echo base_url('index.php/admin/home/auto_complete');?>';
var column=$('#search_column').val();
$('#search_column').change(function(){
column= $(this).val();
});
$("#admin_auto_search").autocomplete({
source: url+"?search_column="+column
});
});
感谢任何帮助。
修改
我的问题与jquery有关。我将dropdownbox值传递给自动完成方法。
var column=$('#search_column').val();
source: url+"?search_column="+column
我的功能路径是正确的并且正在工作。但是我在下拉列表中选择的值,在我的控制器中,我将search_column的值仅作为“用户名”。
答案 0 :(得分:1)
您错误地将column
函数中的值分配给ready
,因此它具有第一个值,因为始终选择第一个选项尝试此选项
我已将autocomplete
函数放在onchange
内,以便它始终具有新值
$(function(){
var url="<?php echo base_url('index.php/admin/home/auto_complete');?>";
$('#search_column').change(function(){
alert($('#search_column').val()) // just for check that it is called or not
var column=$('#search_column').val();
$("#admin_auto_search").autocomplete({
source: url+"?search_column="+column
});
});
});
答案 1 :(得分:0)
替换
行var url='<?php echo base_url('index.php/admin/home/auto_complete');?>';
通过
var url='<?php echo base_url();?>index.php/admin/home/auto_complete';
<强>更新强>
如果您希望每次用户更改change
时value
drop down value
,那么您还需要initialize
插件,例如,
$('#search_column').change(function(){
column= $(this).val();
// reinitialze autocomplete to get the changed value
$("#admin_auto_search").autocomplete({
source: url+"?search_column="+column
});
});