Как создать ajax запрос для работы и возврата в одном файле с DataTable и Codeigniter - PullRequest
1 голос
/ 27 февраля 2020

Я новичок в Codeigniter и все еще пытаюсь понять, как это работает, я пытаюсь отправить ajax из представления addHistory в функцию fetchDriversHistory в драйверах контроллера. php но я не получаю ответ, Я получаю сообщение об ошибке

DataTables warning: table id=manageTable1 - Invalid JSON response 

в браузере-> сети, когда проверяю, что ответ на запрос по какой-то причине возвращает формат HTML страницы

У меня есть файл application \ views \ drivers \ addHistory. php, который инициализирует таблицу данных

 manageTable = $('#manageTable1').DataTable({
 "ajax": {
  "url": "fetchDriversHistory",
  "data": {
       "user_id": <?php echo $id ?>
   }
   },
     'order': []
   });

в приложении \ controllers \ Drivers. php is locate fetchDriversHistory

 public function fetchDriversHistory()
 {
   $result = array('data' => array());

   $data = $this->model_drivers->fetchDriversHistory($id);

   foreach ($data as $key => $value) {

     $result['data'][$key] = array(
       $value['date_added'],
       $value['daily_rate'],
       $value['dayoff']
     );
   }
   echo json_encode($result);
 }

Модель приложения \ models \ Model_drivers. php

    public function fetchDriversHistory($id = null)
{
        $sql = "SELECT driver_id, daily_date, dayoff, date_added FROM addDriverHistory where id = ?";
        $query = $this->db->query($sql, array($id));
        return $query->result_array();
}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Ваш URL неверен, вы должны:

"url": "<?= base_url("your_controller_name/fetchDriversHistory") ?>"

А в addHistory. php вы отправляете данные с именем поста "user_id". Но в Drivers. php это название поста не существует

0 голосов
/ 27 февраля 2020

Ваш URL, указанный в javascript, неверен. По умолчанию вам нужно определить URL как https//:<domain.com>/<controller>/<method>/<arguments>.

Для более подробной информации прочитайте это .

manageTable = $('#manageTable1').DataTable({
 "ajax": {
  "url": "<?php echo base_url('drivers/fetchDriversHistory');?>", // This will generate absulote URL
  "data": {
       "user_id": <?php echo $id ?>
   }
   },
     'order': []
   });

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...