0

我正在使用 jquery ui 自动完成来显示来自 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();?>

脚本

$(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 有关。我将下拉框值传递给自动完成方法。

var column=$('#search_column').val();

source: url+"?search_column="+column

我的函数路径是正确的并且正在工作。但是无论我在下拉列表中选择哪个值,在我的控制器中,我都会将 search_column 的值作为“用户名”。

4

2 回答 2

1

你做错了你已经columnready函数中分配了值,因此它具有第一个值,因为总是选择第一个选项试试这个

我已将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
    });
    });


});
于 2013-07-10T17:22:57.497 回答
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那么您还必须使用插件,例如,valuedrop down valueinitialize

$('#search_column').change(function(){
    column= $(this).val();
    // reinitialze autocomplete to get the changed value
    $("#admin_auto_search").autocomplete({
        source: url+"?search_column="+column
    });
});
于 2013-07-10T15:47:17.473 回答