2015-07-11 61 views
1

我想用笨和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次,但是当我只提交一次,它不能更新。

怎么了?

+0

检查什么控制台发生第一次点击按钮 – shafiq

回答

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包含文字,你输入你的表单

+0

如何添加新表单(例如)。我将这段代码放在我的ajax中? –

+0

只需替换代码 –

+0

@FatchulAmin如果答案有帮助接受它。所以它对新用户的帮助没有重复。谢谢 –

0

您应该使用下面的代码你控制器:

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

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

+0

我觉得我的情况在AJAX中的重点。是的,关于id_info存在,但我没有写在我的问题 –

0

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

可以插入或添加一些JavaScript函数“协商”你的申请表例如

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

'escape()'是一个废弃的DOM API:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /逃逸 – calvinf