2016-10-26 3 views
0

Я сделал функцию, где я могу добавить строку после подтверждения. проблема заключается в том, что после кнопки отправки таблицы не перезагружают и не отображают функцию предупреждения об ошибках. Фактически успех данных сохраняется, и я должен обновить страницу, чтобы таблица могла перезагрузиться. вот мой Аякса код JQuery:функция save ajax ошибка

function reloadPage() 
 
    { 
 
    window.location.reload() 
 
    } 
 

 
function save() 
 
{ 
 
    $('#btnSave').text('saving...'); //change button text 
 
    $('#btnSave').attr('disabled',true); //set button disable 
 
    var url; 
 
    
 
    if(save_method == 'add') { 
 
     url = "<?php echo site_url('activity/save')?>"; 
 
    } else { 
 
     url = "<?php echo site_url('activity/update_activity')?>"; 
 
    } 
 

 
    
 
    // ajax adding data to database 
 
    $.ajax({ 
 
     url : url, 
 
     type: "POST", 
 
     data: $('#form-input').serialize(), 
 
     dataType: "JSON", 
 
     success: function(data) 
 
     { 
 
    
 
      
 
      $('#myModal').modal('hide'); 
 
      reloadPage(); 
 
$('#btnSave').text('save'); //change button text 
 
     $('#btnSave').attr('disabled',false); //set button enable 
 

 

 
    }, 
 
    error: function (jqXHR, textStatus, errorThrown) 
 
    { 
 
     alert('Error adding/update data'); 
 
     $('#btnSave').text('save'); //change button text 
 
     $('#btnSave').attr('disabled',false); //set button enable 
 

 
    } 
 
}); 
 
}
<button id="btnSave" onclick="save()" class="btn green"> 
 
"fa fa-save"> save</button>

мой контроллер:

public function save() { 
 
     $actype  \t = $this->input->post('actype'); 
 
     $activity_name \t = $this->input->post('activity_name'); 
 
     $project \t = $this->input->post('project'); 
 
     $portion \t = $this->input->post('portion'); 
 
     $activity \t = $this->input->post('actid'); 
 
    
 

 
     $data = array(
 
     \t 'activity_type_id'=>$actype, 
 
\t \t 'activity_name' \t =>$activity_name, 
 
\t \t 'project_id' \t =>$project, 
 
\t \t 'portion' \t =>$portion, 
 
\t \t 'activity_id' \t => $activity 
 
      
 
     ); 
 
     $this->activity->insertactivity($data); 
 
    
 
     redirect("activity/input"); 
 
    }

после того, как я нажал кнопку я сохранить, предупреждение ('добавление Error/обновление данных '), но фактически после сохранения данных страницы перезагрузки. где ошибка кода в моем коде ajax?

+0

вы две функции сохранения ??? в контроллере и скрипте? –

+0

Да, его wronng или нет? –

+0

Я думаю, что это неправильно. почему вам нужно две функции в одной кнопке с одинаковой функцией (сохранить)? –

ответ

0

Принудительная перезагрузка с сервера.

window.location.reload(true); 

Если вы не зададите true перезагрузка может быть из кэша браузера, если таковой имеется.

Кроме того, в контроллере redirect("activity/input"); не является соответствующим ответом на запрос AJAX. Вместо этого попробуйте что-то подобное.

$this->activity->insertactivity($data); 
echo json_encode(array('result' => TRUE)); 

Ваш код контроллера также может быть намного более кратким. Рассмотрим этот

public function save() 
{ 
    $data = array(
      'activity_type_id' => $this->input->post('actype'), 
      'activity_name' => $this->input->post('activity_name'), 
      'project_id' => $this->input->post('project'), 
      'portion' => $this->input->post('portion'), 
      'activity_id' => $this->input->post('actid') 
    ); 

    //Assuming insertactivity returns TRUE if the insert works and FALSE if not 
    $results['result'] = $this->activity->insertactivity($data); 
    echo json_encode($results); 
} 

Вы можете проверить «результат» в функции успеха

success: function(data) 
{ 
    if(data.result === true) 
    { 
    $('#myModal').modal('hide'); 
    reloadPage(); 
    $('#btnSave').text('save'); //change button text 
    $('#btnSave').attr('disabled',false); //set button enable 
    } else { 
    //do something to the DOM to tell about the problem 
    //which probably means you should add that to your controller's response. 
    } 
}, 
Смежные вопросы