【问题标题】:How to auto complete a text box using jQuery depending the value of another text box如何根据另一个文本框的值使用 jQuery 自动完成文本框
【发布时间】:2013-09-03 22:18:53
【问题描述】:

我正在使用 2 个文本框,这些文本框将使用自动完成机制来完成。这是一个 codeigniter 项目。要填充的值是使用模型从数据库中选取的。在第一个文本框中,它与以下代码一起正常工作。

$(function() {
    $("#textbox1").autocomplete({
    source:'<?php echo site_url('controller_name/function_name/arg1/arg2'); ?>'
    });
});

在第二个文本框中,要填充的值取决于 textbox1 的值。那么如何在 site_url() 函数中使用 textbox1 的值。

$(function() {
    var data=$("#textbox1").val();
    $("#textbox2").autocomplete({
        source:"<?php echo site_url('controller_name/function_name/arg1/"+data+"');  ?>"

    });
});

上面的方法我试过了。但是,变量数据没有获得任何价值。

【问题讨论】:

  • 你是在页面加载时填充textbox1数据

标签: php javascript jquery codeigniter jquery-autocomplete


【解决方案1】:

稍微改变控制器功能。不要将 texbox1 值作为 arg2 发送,而是使用 AJAX 发布它。并使用$_POST['data'] 在函数内部接收它。原样发送 arg1 并发布 arg2 值。

$(function() {
               $( "#textbox2" ).autocomplete({
                   source: function(request, response) {
                       $.ajax({ url:"<?php echo site_url('controller_name/function_name/arg1');?>",
                       data:{'request':$("#textbox1").val()},
                       dataType: "json",
                       type: "POST",
               success: function(data){
                           response(data);
                       }
                   });
               },
               });
           });

【讨论】:

    【解决方案2】:

    稍微改变控制器功能。不要将texbox1 值作为参数2 发送,而是使用AJAX 发布它。并使用$_POST['data'] 在函数内部接收它。

    $(function() {
                   $( "#textbox2" ).autocomplete({
                       source: function(request, response) {
                           $.ajax({ url:"<?php echo site_url('controller_name/function_name/arg1');?>",
                           data:{'request':$("#textbox1").val()},
                           dataType: "json",
                           type: "POST",
                   success: function(data){
                               response(data);
                           }
                       });
                   },
                   });
               });
    

    【讨论】:

    • 感谢您的回答...这是一个明智的选择
    • 这不只是@Arjun Pokkat 答案的副本。错误的人获得了信用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2017-07-23
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多