You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery在输入框而非下拉框中调用AJAX(CodeIgniter场景)

解决CodeIgniter中AJAX返回数据填充输入框的问题

我明白你遇到的困扰了——之前的代码是针对下拉列表的DOM操作逻辑,直接套用到输入框上肯定行不通,毕竟输入框和下拉列表的DOM结构完全不一样。咱们来一步步把这个问题解决掉:

核心问题分析

原来能正常工作的下拉填充代码,是在操作下拉列表的<option>子元素:先清空现有选项,再循环添加新选项。但输入框是单个表单元素,不需要处理子节点,只需要直接设置它的值就可以了。

修改后的前端AJAX代码

假设你原来的下拉触发AJAX的代码是这样的(注释部分是能正常填充下拉的逻辑):

$('#your_dropdown_id').change(function() {
    var selectedValue = $(this).val();
    $.ajax({
        url: '<?php echo base_url('your_controller/get_target_data'); ?>',
        type: 'POST',
        data: {selected_id: selectedValue},
        dataType: 'json',
        success: function(data) {
            // 原来的下拉填充逻辑(注释掉的有效代码)
            // $('#sel_depart').find('option').remove();
            // $.each(data, function(key, value) {
            //     $('#sel_depart').append('<option value="'+value.id+'">'+value.name+'</option>');
            // });

            // 修改后的输入框填充逻辑
            // 假设后端返回的data是包含目标字段的对象,比如data.department_name
            $('#your_input_id').val(data.department_name);
            
            // 如果后端返回的是数组(比如查询结果是多条,但你只需要第一条)
            // $('#your_input_id').val(data[0].department_name);
        },
        error: function(xhr, status, error) {
            // 调试用:打印错误信息,方便排查
            console.log('AJAX请求错误:', error);
            console.log('响应内容:', xhr.responseText);
        }
    });
});

确保后端CodeIgniter返回正确的JSON

你的控制器方法需要正确输出JSON格式的数据,这样前端才能解析:

public function get_target_data()
{
    // 获取前端传递的下拉选中值
    $selected_id = $this->input->post('selected_id');
    
    // 调用模型获取对应的数据(这里替换成你的模型和方法)
    $target_data = $this->your_model->get_data_by_id($selected_id);
    
    // 设置响应头为JSON格式,确保前端正确解析
    header('Content-Type: application/json');
    // 输出JSON数据
    echo json_encode($target_data);
    // 终止后续执行,避免输出多余内容
    exit;
}

关键注意事项

  • 输入框ID要正确:确保#your_input_id和你HTML中输入框的id属性完全一致,不要拼写错误。
  • 确认数据结构匹配:打开浏览器开发者工具(F12),查看AJAX请求的响应内容,确认后端返回的字段名和前端使用的一致(比如后端返回dept_name,前端就不要写成department_name)。
  • 检查路由和权限:确保CodeIgniter的路由配置正确,AJAX请求的URL能正确访问到控制器方法,同时没有权限限制阻止请求。

这样修改后,下拉列表触发AJAX时,返回的数据就能正确填充到输入框里了。

内容的提问来源于stack exchange,提问作者amit sutar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:30:11