2016-06-01 14 views
0

Ich möchte einen Mitarbeiter aus dem System zu beenden. Wenn Sie auf "Abbrechen" klicken, wird ein Moadal angezeigt, in dem Sie gefragt werden, ob Sie den Vorgang abbrechen oder abbrechen möchten. Wenn der Datenbankwert beendet wird, sollte resign als 0 aktualisiert werden, aber im Moment funktioniert die Schaltfläche nicht.CodeIgniter Update-Abfrage funktioniert nicht

Hier ist mein Code

Controller

public function ajax_list() 
{ 
    $list = $this->employees->get_datatables(); 

    $data = array(); 
    $no = $_POST['start']; 
    foreach ($list as $emp) { 
     $no++; 
     $row = array(); 
     $row[] = $emp->employee_id; 
     $row[] = $emp->name; 
     $jid = $emp->job_title; 
     $desigdata = $this->employees->GetJobTitlebyID($jid); 
     $row[] = $desigdata->desc; 
     $did = $emp->department; 
     $deptdata = $this->employees->GetDepartmentbyID($did); 
     $row[] = $deptdata->title; 
     $secid = $emp->section; 
     $secdata = $this->employees->GetSectionbyID($secid); 
     $row[] = $secdata->desc; 


     //add html for action 
     $row[] = '<a class="btn btn-sm btn-primary" href="javascript:void()" onclick="terminate_emp('."'".$emp->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Terminate</a>'; 


     $data[] = $row; 
    } 

    $output = array(
     "draw" => $_POST['draw'], 
     "recordsTotal" => $this->employees->count_all(), 
     "recordsFiltered" => $this->employees->count_filtered(), 
     "data" => $data, 
    ); 

    echo json_encode($output); 
} 


public function ajax_terminate() 
    { 
     $this->_validate(); 
     $data = array(
      'resign' => $this->input->post('resign'), 

     ); 
     $this->employees->update(array('id' => $this->input->post('id')), $data); 
     echo json_encode(array("status" => TRUE, "id" => $this->input->post('id'))); 
    } 

Modell

function terminate_emp($data) 
{ 
    $this->db->where('resign', 0); 
    $this->db->update('employees', $data); 
} 

Ansicht

function terminate_emp(id) 
    { 
     save_method = 'update'; 
     $('#form')[0].reset(); 
     $('.form-group').removeClass('has-error'); 
     $('.help-block').empty(); 

     //Ajax Load data from ajax 
     $.ajax({ 
      url : "<?php echo site_url('employees_con/ajax_terminate/')?>/" + id, 
      type: "GET", 
      dataType: "JSON", 
      success: function(data) 
      { 
       $('[name="id"]').val(data.id); 

       if(data.resign == 1) 
       { 
        //$('[name="resign"]').val(data.resign); 
        $('#resign').prop('checked', true); 
       } 
       $('[name="resign"]').val(data.resign); 

       $('#modal_formterminate').modal('show'); // show bootstrap modal when complete loaded 
       $('.modal-title').text('Terminate Employee'); // Set title to Bootstrap modal title 

      }, 
      error: function (jqXHR, textStatus, errorThrown) 
      { 
       alert('Error get data from ajax'); 
      } 
     }); 
    } 



<div class="modal fade" id="modal_formterminate" role="dialog"> 

    <div class="modal-dialog modal-full" style="max-width: 600px"> 

    <div class="modal-content"> 

     <div class="modal-header bg-blue-steel bg-font-blue-steel"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h3 class="modal-title bold uppercase">Person</h3> 
     </div> 

     <div class="modal-body form"> 
      <form action="#" id="form" class="form-horizontal"> 
       <input type="hidden" value="" name="id"/> 
       <div class="form-body"> 

        <div id="empWizard"> 


         <p style="color: #0000cc"><b>Are You sure to Terminate this employee</b></p> 

        </div> 
       </div> 

      </form> 
     </div> 

     <div class="modal-footer"> 
      <button type="button" id="btnSaveterminate" onclick="save()" class="btn btn-primary">Terminate</button> 
      <button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button> 
     </div> 

    </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 

</div> 

Antwort

0

In Controller

$this->employees->update(array('id' => $this->input->post('id')), $data); 

Sie passieren zwei Parameter Funktion des Modells zu aktualisieren, ist ein Array und die anderen $data, die auch ein Array ist.

Aber im Modell,

function terminate_emp($data) 
{ 
    $this->db->where('resign', 0); 
    $this->db->update('employees', $data); 
} 

Sie akzeptieren nur einen Parameter in der Update-Funktion.

0

Zuerst machen Sie GET Anfrage über AJAX und auf Controller-Funktion ajax_terminate() Sie greifen auf Variablen mit POST. Sie resign Wert wird nicht durch Ajax übergeben und Sie versuchen, auf Controller-Funktion ajax_terminate() zu bekommen. Im folgenden sehen Sie den Code ein: -

function terminate_emp(id) 
{ 
    save_method = 'update'; 
    $('#form')[0].reset(); 
    $('.form-group').removeClass('has-error'); 
    $('.help-block').empty(); 

    //Ajax Load data from ajax 
    $.ajax({ 
     url : "<?php echo site_url('employees_con/ajax_terminate/')?>/", 
     type: "POST", 
     dataType: "JSON", 
     data: {id:id,resign:YOUR_RESIGN_VALUE} 
     success: function(data) 
     { 
      $('[name="id"]').val(data.id); 

      if(data.resign == 1) 
      { 
       //$('[name="resign"]').val(data.resign); 
       $('#resign').prop('checked', true); 
      } 
      $('[name="resign"]').val(data.resign); 

      $('#modal_formterminate').modal('show'); // show bootstrap modal when complete loaded 
      $('.modal-title').text('Terminate Employee'); // Set title to Bootstrap modal title 

     }, 
     error: function (jqXHR, textStatus, errorThrown) 
     { 
      alert('Error get data from ajax'); 
     } 
    }); 
} 

Model ändern zu

function terminate_emp($where,$data) 
{ 
    $this->db->where($where); 
    $this->db->update('employees', $data); 
} 
+0

stilll nicht – colombo

+0

arbeiten, was '$ this -> _ Validate();' tun? – Vinie

+0

eigentlich nicht benötigt – colombo

Verwandte Themen