2017-03-02 96 views
0

我試圖插入和使用ajax我控制我的數據庫更新數據後的工作。現在我點擊按鈕後,我的數據正在插入和更新。但是我的視圖頁面上的數據沒有更新。我需要重新刷新頁面來更新我的觀點和成功的消息顯示笨 - 重定向頁面不提交按鈕

PS:它的發射有時,有時沒有,無法理解的行爲

下面是我的JS文件阿賈克斯

$('#triger').click(function(){ 
        var btn_value = $('#triger').val(); 
        var tenant_id = $('#tenant_id').val(); 
        var calldisp_id = $('#calldisp_id').val(); 
        var disposition_name = $('#disposition_name').val(); 
        var disposition_code = $('#disposition_code').val(); 
        var email = $.map($("#tags span"), function(elem, index){ 
         return $(elem).text(); 
        }); 
        var myJsonString = JSON.stringify(email); 
        //alert(myJsonString); 
         if(btn_value == 'Create'){ 

          $.ajax({ 
           url:"<?php echo base_url();?>admin/call_disposition/create_email_dispo_dre", 
           method:"POST", 
           data:{email:myJsonString, 
             disposition_name:disposition_name, 
             disposition_code:disposition_code, 
             tenant_id:tenant_id}, 
           dataType: 'json', 
           success:function(data){ 

           }, 
          }); 
         } 
         else if(btn_value == 'Update'){ 
          $.ajax({ 
           url:"<?php echo base_url();?>admin/call_disposition/update_email_dispo_dre", 
           method:"POST", 
           data:{email:myJsonString, 
             disposition_name:disposition_name, 
             disposition_code:disposition_code, 
             calldisp_id:calldisp_id, 
             tenant_id:tenant_id}, 
           dataType: 'json', 
           success:function(data){ 


           }, 
          }); 
         } 

       }); 

下面是我的控制器

public function create_email_dispo_dre($id){ 

    $this->_rules(); 

    if ($this->form_validation->run() == FALSE) { 
     $this->update($id); 
    } else { 
    $data = array(
      'tenant_id' => $this->input->post('tenant_id',TRUE), 
      'disposition_code' => $this->input->post('disposition_code',TRUE), 
      'disposition_name' => $this->input->post('disposition_name',TRUE), 
      'email' => $this->input->post('email',TRUE)   
      ); 
    $this->calldisp_model->insert($data); 
    $this->session->set_flashdata('message', 'admin_faqs_success'); 
    redirect('admin/call_disposition/update/'.$id); 

    } 

} 

回答

0

在爲更新Ajax請求: 在成功部分:

success:function(data){ 
}, 

需要調用頁面重載:

window.location.reload(); 

使你的代碼變成:

success:function(data){ 
    window.location.reload(); 
}, 
+0

它不工作,我已經嘗試這種 – Dre

+0

你是說,你的網頁沒有代碼提神? –

+0

因爲我使用的是POST方法,所以很新鮮。但我認爲重定向不起作用,因爲我手動刷新了頁面。 flashdata消息將出現 – Dre

0

在控制器

你必須添加

echo json_encode(array('success'=>'1'));代替redirect('admin/call_disposition/update/'.$id);因爲你使用的數據類型 「JSON」;

,併成功改變功能的Ajax請求就像

success:function(data){ 
    if(data.success=='1'){ 
    window.location.reload(); 
    } 
} 
+0

仍然無法正常工作 – Dre

0

CI中,當你執行一個AJAX調用,你不能從控制器功能重定向。如果你想點擊#trigger你之後無縫更新頁面有呼應的結果在您的控制器

echo json_encode($html_you_want_to_display); 

,然後你的Ajax成功子句中,你需要通過設置從回聲更新結果的DIV innerHtml到結果。希望這有助於

相關問題