使用AJAX和codeigniter更新数据失败

时间:2015-07-11 06:16:30

标签: javascript php jquery ajax codeigniter

我想使用Codeigniter和AJAX更新我的数据以提交回复..

这是我的观点

<form id="form_update" action="<?php echo base_url() ?>admin/update_derap_info" method="POST"  role="form">

   <textarea cols="80" id="editor1" name="isi" rows="10" class="form-control" >

   </textarea>

<input type="submit" value="Simpan" class="btn btn-sm btn-primary" name="update_info_pemesanan">
</form>

我的控制器

$data = array
    (
        'isi'=> ltrim(rtrim($this->input->post('isi')))
    );
         $this->info_derap->update($this->input->post('id_info'),$data);
         echo'<div class="alert alert-success">Terimakasih, pesan anda sudah kami terima. Pemberitahuan selanjutnya kami beritahunak lewat email.</div>';
         exit;

我的模特

function update($id,$data){
    $this->db->where($this->id, $id);
    $this->db->update($this->table, $data);
}

这是我的AJAX

<script type="text/javascript">    
    $("#form_update").submit(function (e){
        e.preventDefault();
        $("#loader").show();
        var url = $(this).attr('action');
        var data = $(this).serialize();
        $.ajax({
            url:url,
            type:'POST',
            data:$("#form_update").serialize(),
        }).done(function (data){
            $("#response").html(data);
            $("#loader").hide();
            fillgrid();
        });                        
    });     
</script>

如果我按下提交2次,我可以更新我的数据,但是当我提交一次时,它无法更新。

出了什么问题?

3 个答案:

答案 0 :(得分:1)

您无法使用表单进行更新。使用此

<form  action="" method=""  role="form">

   <textarea cols="80" id="editor1" name="isi" rows="10" class="form-control" ></textarea>

   <input type="submit" value="Simpan" class="btn btn-sm btn-primary" name="update_info_pemesanan" id="form_update">
</form>

在AJAX中

<script type="text/javascript">
    $(function(){
        $("#form_update").click(function(event){
            event.preventDefault();
            $("#loader").show();
            var editor1= $("#editor1").val();

            $.ajax(
                {
                    type:'post',
                    url:"<?php echo base_url() ?>admin/update_derap_info",
                    data:{editor1:editor1},
                    success:function($data)
                    {
                        $("#response").html(data);
                        $("#loader").hide();
                        fillgrid();
                    }
                });
        });
    });
</script>
控制器中的

$text_area = $this->input->post('editor1')

所以在$text_area中包含您在表单中输入的文字

答案 1 :(得分:0)

您应该在控制器上使用以下代码:

$this->info_derap->update($this->input->post('id_info'),$data);

另外,请确保在相应的视图中有一个名为id_info的字段。

答案 2 :(得分:0)

如果您使用调试消息,您可以检查请求...

您可以插入或添加一些javascript函数“espace”您的请求表单,例如

escape($("editor1").val());