表单dropdown.val()在通过url传递时不会更改

时间:2013-07-10 15:44:59

标签: jquery jquery-ui codeigniter get

我正在使用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的值仅作为“用户名”。

2 个答案:

答案 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'; 

<强>更新

如果您希望每次用户更改changevalue 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
    });
});