如何在视图中使用Codeigniter和Ajax通过ID显示图像和数据

时间:2019-01-23 08:13:55

标签: php jquery ajax codeigniter

请帮助我。成功上传照片后,我正在使用codeigniter和ajax制作应用程序。但是,当我单击“编辑”按钮时,照片不会出现在要更新的引导程序模式中。

这里有一些代码,我使用了数据表服务器端。 User_model.php

public function get_by_id($id)
{
    $this->db->from($this->table);
    $this->db->where('user_id',$id);
    $query = $this->db->get();

    return $query->row();
}

User.php(控制器)

public function ajax_edit($id)
{
    $data = $this->User_model->get_by_id($id);
    echo json_encode($data);
}

user.php(使用模式引导程序查看)

<div class="modal fade" id="modal_form" tabindex="-1" role="dialog" aria-labelledby="largeModal" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            <h3 class="modal-title">Tambah Pengguna</h3>
        </div>

        <form action="#" id="form" class="form-horizontal" >
            <input type="hidden" value="" name="id"/>
            <div class="modal-body">

                <div class="form-group">
                    <label class="control-label col-xs-3" >Username <font color="red>">*</font></label>
                    <div class="col-xs-9">
                        <input name="userNm" class="form-control" type="text" placeholder="" style="width:335px;"required>
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-xs-3" >Nama Pengguna <font color="red>">*</font></label>
                    <div class="col-xs-9">
                        <input name="nama" class="form-control" type="text" placeholder="" style="width:335px;" required>
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-xs-3" >Email <font color="red>">*</font></label>
                    <div class="col-xs-9">
                        <input name="email" class="form-control" type="text" placeholder="" style="width:335px;" required>
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-xs-3" >Upload Foto <font color="red>">*</font></label>
                    <div class="col-xs-9">
                        <input type="file" name="fupload" required/>
                    </div>
                </div>

                <div id="preview" style="display:none";>
                </div>


                <div><br></div>
                <font color="red">*</font> : kolom wajib di isi.
            </div>

            <div class="modal-footer">
                <button class="btn" data-dismiss="modal" aria-hidden="true">Batal</button>
                <button class="btn btn-info" id="btn_simpan" type="submit" onclick="save()">Simpan</button>
                <!--<button class="btn btn-info" id="btn_simpan" type="submit" >Simpan</button>-->
            </div>
        </form>
    </div>
</div>

,这里是将数据显示为编辑形式的ajax。

function edit_user(id)
{
    save_method = 'update';
    $('#form')[0].reset(); // reset form on modals
    $('.form-group').removeClass('has-error'); // clear error class
    $('.help-block').empty(); // clear error string

    //Ajax Load data from ajax
    $.ajax({
        url : "<?php echo site_url('user/ajax_edit/')?>/" + id,
        type: "GET",
        dataType: "JSON",
        success: function(data)
        {
            $('[name="id"]').val(data.user_id);
            $('[name="userNm"]').val(data.username);
            $('[name="nama"]').val(data.complete_name);
            $('[name="email"]').val(data.user_email);
            //$('[name="fupload"]').val(data.user_image);

            $(".#preview").attr("src", './assets/img_user/'+val(data.user_image);

            $('#modal_form').modal('show'); // show bootstrap modal when complete loaded
            $('.modal-title').text('Edit Data Pengguna'); // Set title to Bootstrap modal title

        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert('Error get data from ajax');
        }
    });
}

我希望有人能帮助我。谢谢你。

2 个答案:

答案 0 :(得分:0)

我还在代码中显示了div没有图像标签的一件事。所以您必须添加它。

 $("#preview").html('');

 $("#preview").append("<img src='../assets/img_user/"+data.user_image+"' class='contentimg'>");

答案 1 :(得分:0)

我认为最好输出这样的JSON数据:

$this->output->set_content_type('application/json')
            ->set_header('Access-Control-Allow-Origin: *')
            ->set_output(json_encode($return));

than在控制器中回显它。