需要帮助在 codeigniter 中创建自动填充

Posted

技术标签:

【中文标题】需要帮助在 codeigniter 中创建自动填充【英文标题】:need help to create autofill in code igniter 【发布时间】:2017-09-11 14:37:28 【问题描述】:

任何人都可以帮助如何使用 AJAX 在 codeigniter 3 中创建自动填充表单字段,我已经浏览过,但没有人成功

控制器:

function autofill()
        $id_pemesan = $this->input->post('id_pemesan', TRUE);
        $this->mod_marketing->autofill_by_id($id_pemesan,'pemesan');



            $data = array(
            'nama_depan' => nama_depan,
            'nama_belakang' => nama_belakang,
            'alamat' => alamat,
            'provinsi_kota' => provinsi_kota,
            'kode_pos' => kode_pos,
            'email' => email,
            'no_telp' => no_telp
            );

        echo json_encode($data);
    

型号:

function autofill_by_id($id_pemesan,$table)

        return $this->db->get_where($table,array('id_pemesan', $id_pemesan));
    

脚本:

<script>
$(function() 
        $("#id_pemesan").change(function()
            var id_pemesan = $("#id_pemesan").val();

            $.ajax(
                url: '<?php echo site_url('marketing/autofill'); ?>',
                type: 'POST',
                dataType: 'json',
                data: 
                    'id_pemesan': id_pemesan
                ,
                success: function (pemesan) 
                    $("#nama_depan").val(pemesan.nama_depan);
                    $("#nama_belakang").val(pemesan.nama_belakang);
                    $("#alamat").val(pemesan.alamat);
                    $("#provinsi_kota").val(pemesan.provinsi_kota);
                    $("#kode_pos").val(pemesan.kode_pos);
                    $("#email").val(pemesan.email);
                    $("#no_telp").val(pemesan.no_telp);

                
            );
        );
    );

我最近的尝试仍然失败

【问题讨论】:

到目前为止的错误是什么?有什么问题? 【参考方案1】:

更改控制器,使其检查响应是否应包含数据或错误。您实际上没有将行传递给数组,所以我猜这就是您想要的:

function autofill()

    $id_pemesan = $this->input->post('id_pemesan', TRUE);
    $row = $this->mod_marketing->autofill_by_id($id_pemesan,'pemesan');

    if( $row )
    
        $data = array(
            'nama_depan'    => $row->nama_depan,
            'nama_belakang' => $row->nama_belakang,
            'alamat'        => $row->alamat,
            'provinsi_kota' => $row->provinsi_kota,
            'kode_pos'      => $row->kode_pos,
            'email'         => $row->email,
            'no_telp'       => $row->no_telp
        );

        echo json_encode($data);
    

    // No rows, or there was more than one row
    else
    
        echo json_encode(array('error' => 'No rows, or there was more than one row'));
    

更改模型以检查行:

function autofill_by_id( $id_pemesan, $table )

    $query = $this->db->get_where($table,array('id_pemesan', $id_pemesan));

    return $query->num_rows() == 1
        ? $query->row()
        : NULL;

修改 JS 以便检查错误:

$(function() 
    $("#id_pemesan").change(function()
        var id_pemesan = $("#id_pemesan").val();

        $.ajax(
            url: '<?php echo site_url('marketing/autofill'); ?>',
            type: 'POST',
            dataType: 'json',
            data: 
                'id_pemesan': id_pemesan
            ,
            success: function (pemesan) 
                if( permesan.error )
                    alert( permesan.error );
                else
                    $("#nama_depan").val(pemesan.nama_depan);
                    $("#nama_belakang").val(pemesan.nama_belakang);
                    $("#alamat").val(pemesan.alamat);
                    $("#provinsi_kota").val(pemesan.provinsi_kota);
                    $("#kode_pos").val(pemesan.kode_pos);
                    $("#email").val(pemesan.email);
                    $("#no_telp").val(pemesan.no_telp);
                
            ,
            error: function()
                alert('error 2');
            
        );
    );
);

【讨论】:

我已经尝试了您的代码,它仍然是空白并收到警报“没有行,或者有超过一行”或者它是因为我使用的 jquery-ui 版本?我使用 jquery-ui 1.11。 4 听起来你有其他东西破坏了响应。您需要转到浏览器控制台的“网络”面板并查看来自服务器的原始响应。

以上是关于需要帮助在 codeigniter 中创建自动填充的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 在 Code Igniter 4 中创建登录系统的过程

无法在 codeigniter 中创建多维数组

想要在 codeigniter 中创建动态子域?

如何在 Codeigniter 中创建分页?

如何在 PHP Codeigniter 框架中创建错误日志 [重复]

无法在 codeigniter 中创建 zip 文件