2015-07-11 104 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