Ajax не получает данные из базы данных в codeigniter - PullRequest
0 голосов
/ 18 февраля 2019

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

Вот функция контроллера.

public function edit(){
    $output = array();
    $this->load->model("crud_data");
    $patient_id = $this->input->post("patient_id");
    $data = $this->crud_data->fetch_single($patient_id);
    foreach ($data as $row) {
        $output["name"] = $row->name;
        $output["age"]  = $row->age;
    }
    echo json_encode($output);
}

Вот модальная функция fetch_single.

public function fetch_single($patient_id){
$this->db->where("patient_id", $patient_id);
$query = $this->db->get('patients');
return $query->result();
}

Ajax для функциональности

$(document).on("click", '.edit', function(){
  var patient_id =  $(this).attr("patient_id");
  $.ajax({
    url:"<?php base_url(); ?>crud/edit",
    method:"POST",
    data:{'patient_id':patient_id},
    dataType:"json",
    success:function(data){
      $("#edit").modal("show"); 
      $("#name").val(data.name);
      $("#age").val(data.age);
      $("#patient_id").val(patient_id); 
      $(".modal-title").html("Edit User")
    },
  });
});

Я хочу получить данные в полях, чтобы я мог их обновить.

Ответы [ 4 ]

0 голосов
/ 07 марта 2019

Я не могу сказать вам, что вы не так, но это легко отладить.во-первых, вы можете утешить данные, полученные в ajax. В случае успеха вы можете утешить данные.если он пуст, вы проверите свою функцию php.Проверьте входные данные $ Patient_id isset и проверьте значение короткого сообщения $this->crud_data->fetch_single($patient_id);

, вам нужно пошагово проверять, чтобы найти ошибку

0 голосов
/ 18 февраля 2019
public function edit(){
    $output = array();
    $this->load->model("crud_data");
    $patient_id = $this->input->post("patient_id");
    $data = $this->crud_data->fetch_single($patient_id);
    $output["name"] = $data ->name;
    $output["age"]  = $data ->age;
    $this->output->set_content_type('application/json');
    $this->output->set_output(json_encode($output));
}

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

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

При успешном использовании ajax вы не анализировали данные при отправке json_encode с контроллера.Таким образом, синтаксический анализ json_encode успешен, а затем добавьте данные в модальный режим.

 var parse_data = JSON.parse(data); 

Спасибо

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

Контроллер

Если вы получаете только один ряд, то не используйте цикл

public function edit(){
$output = array();
$this->load->model("crud_data");
$patient_id = $this->input->post("patient_id");
$data = $this->crud_data->fetch_single($patient_id);
$output["name"] = $data ->name;
$output["age"]  = $data ->age;
echo json_encode($output);
}

Модель

Чтобы получить только одну строку, используйте row(), а не result()

public function fetch_single($patient_id){
  $this->db->where("patient_id", $patient_id);
  $query = $this->db->get('patients');
  return $query->row();
}

Функция успеха Ajax

Загрузка модальных значений после назначения значений для полей ввода

success:function(data){ 
  $("#name").val(data.name);
  $("#age").val(data.age);
  $("#patient_id").val(patient_id); 
  $(".modal-title").html("Edit User");
  $("#edit").modal("show");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...