2017-03-02 43 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到结果。希望这有助于