Как добавить данные из CRUD AJAX в php codeigniter? - PullRequest
0 голосов
/ 24 февраля 2019

Я хочу добавить обновление и удалить данные в таблице ниже.Удалить работает.Но у меня проблема с добавлением данных с использованием CRUD enter image description here

Вот контроллер.Я добавляю данные в две таблицы, родитель и ученик, используя одну форму одним нажатием кнопки.

    public function register_students()
{

    // $this->load->model('Register_model','multi_model',TRUE);
    $encrypted_password1 = $this->encrypt->encode($this->input->post('p_pwd'));

    $parent_data = array(

        'parent_code' => $this->input->post('parent_code'),
        'f_name' => $this->input->post('p_first_name'),
        'l_name' => $this->input->post('p_last_name'),
        'DOB' => $this->input->post('p_dob'),
        'address' => $this->input->post('p_address'),
        'tel' => $this->input->post('p_tel_no'),
        'email' => $this->input->post('email'),
        'username' => $this->input->post('p_username'),
        'password' => $encrypted_password1,
    );



     $id = $this->Model_Action->insertTable('parent',$parent_data);




    $encrypted_password = $this->encrypt->encode($this->input->post('pwd'));
    $student_data = array(
        's_id' => '',
        'student_code' => $this->input->post('student_code'),
        'f_name' => $this->input->post('first_name'),
        'l_name' => $this->input->post('last_name'),
        'DOB' => $this->input->post('dob'),
        'gender' => $this->input->post('gender'),
        'address' => $this->input->post('address'),
        'tel' => $this->input->post('tel_no'),
        'username' => $this->input->post('username'),
        'password' => $encrypted_password,
        'p_id' => $id


    );
    $insert = $this->Model_Action->insertTable('student',$student_data);

    echo json_encode(array("status" => TRUE));

    redirect('student');


}

Вот моя модель

 function insertTable($table, $data) {
    $this->db->insert($table, $data);
    return $this->db->insert_id();
}

Это мой взгляд - раздел javascript.В этом разделе я удалил функцию редактирования и функцию удаления.

<script type="text/javascript">


 $(document).ready( function () {
      $('#student_table').DataTable();
  } );
    var save_method; 
    var table;



function add_book()
{
  save_method = 'add';
  $('#form')[0].reset(); 
  $('#modal_form').modal('show'); 
}


function save()
{
  var url;
  if(save_method == 'add')
  {
    url = "<?php echo site_url('/Student/register_students')?>";
  }
  else
  {
    url = "<?php echo site_url('/Student/student_update')?>";
  }

   // ajax adding data to database
      $.ajax({
        url : url,
        type: "POST",
        data: $('#form').serialize(),
        dataType: "JSON",
        success: function(data)
        {
           //if success close modal and reload ajax table
           $('#modal_form').modal('hide');
          location.reload();// for reload a page
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert('Error adding / update data');
        }
    });
}

Я использовал модель начальной загрузки для добавления и обновления форм, и они также работают нормально.

1 Ответ

0 голосов
/ 25 февраля 2019

Как я вижу, вы используете redirect ('student'); при вызове ajax.Не делайте этого, если хотите работать с ajax.Я советую вам:

$array = array(
    'link' => 'strudent',
    'status' => true
);

echo json_encode($array);
return;

И на успех Ajax:

window.location.href = data.link;
...