如何使用jQuery根据另一个文本框的值自动完成文本框?

3

我正在使用两个文本框,并采用自动完成机制进行填写。这是一个 codeigniter 项目。需要填写的值是通过 Model 从数据库中获取的。在第一个文本框中,以下代码可以正常工作。

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

在第二个文本框中,要填写的值取决于文本框1的值。那么如何在site_url()函数内使用文本框1的值呢?
$(function() {
    var data=$("#textbox1").val();
    $("#textbox2").autocomplete({
        source:"<?php echo site_url('controller_name/function_name/arg1/"+data+"');  ?>"

    });
});

我尝试了上述方法。但是,变量数据没有任何值。


你在页面加载时填充了textbox1的数据吗? - Venkata Krishna
2个回答

2
改变控制器函数,不再将textbox1的值作为arg2参数发送,而是使用AJAX进行post。并且在函数内使用$_POST['data']接收它。保留arg1参数,仅将arg2的值作为post发送。
$(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);
                       }
                   });
               },
               });
           });

1

稍微更改控制器函数。不要将texbox1值作为argument2发送,改用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);
                       }
                   });
               },
               });
           });

谢谢你的回答...这是一个明智的回答。 - Puppuli
这不就是@Arjun Pokkat的答案复制吗?错人得到了荣誉? - Bull

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接