Я хочу добавить кнопки редактирования и удаления в таблицы данных, используя кодировщик - PullRequest
0 голосов
/ 04 мая 2018

Я хочу добавить кнопки редактирования и удаления в таблицы данных с помощью codenigator. Это код моего контроллера, где я отображаю данные. Теперь я хочу добавить кнопки, но могу сделать логику, как печатать эти кнопки. Я использую codeginator

public function dataa()
    {
        $draw = intval($this->input->get("draw"));
          $start = intval($this->input->get("start"));
          $length = intval($this->input->get("length"));
          $this->load->model('mymodel');
          $this->load->library('Datatables');
          $this->Datatables->add_column('edit','<a href="#">edit</a>');


          $record = $this->mymodel->records();

          $data = array();

          foreach($record->result() as $r) {

               $data[] = array(
                    $r->email,
                    $r->name,
                    $r->fathername,
                    $r->phone 
               );
          }

          $output = array(
               "draw" => $draw,
                 "recordsTotal" => $record->num_rows(),
                 "recordsFiltered" => $record->num_rows(),
                 "data" => $data

            );
          echo json_encode($output);
          exit();
    }

и это мой взгляд

<script type="text/javascript">
$(document).ready(function() {
    $('#record-table').DataTable({
        "ajax": {
            url : "<?php echo site_url("mycontroller/dataa") ?>",
            type : 'GET'
        },

    });
});
</script>

Ответы [ 4 ]

0 голосов
/ 04 мая 2018

вы можете добавить помощник database_helper

function callback_delete($id)
{
   return "<button class='btn btn-danger delete' data-
           id='{$id}'>Delete</button>";
}

function callback_edit($id)
{
    return "<button class='btn btn-primary edit' data-id='{$id}' data-
           toggle='modal' data-target='#editInsertmodal'>Edit</button> 
           ";
}

и вызовите это в контроллере

public function get_user()
{
    $this->load->helper('database');
    $this->datatables-
>select('user_id,user_firstname,user_lastname,user_email')
        ->from('users')
        ->add_column('Edit','$1','callback_edit(user_id)')
        ->add_column('Delete','$1','callback_delete(user_id)');

    echo $this->datatables->generate();
}
0 голосов
/ 04 мая 2018

Вы также можете попробовать это в своем коде:

foreach($record->result() as $r) {

           $data[] = array(
                $r->email,
                $r->name,
                $r->fathername,
                $r->phone ,
                "<a href='#'>edit</a>"

           );
      }
0 голосов
/ 04 мая 2018

Добавьте еще один столбец в вашу таблицу для кнопки редактирования и удаления. (напр. столбец действий). просто сопоставьте количество столбцов с количеством данных в вашей $data переменной

$data = array();

          foreach($record->result() as $r) {

               $data[] = array(
                    $r->email,
                    $r->name,
                    $r->fathername,
                    $r->phone,
                    '<a href="#">edit</a>',
                    '<a href="#">delete</a>'
               );
          }
0 голосов
/ 04 мая 2018

Я думаю, что это может быть полезно

в вашем контроллере

if (!empty($record->result())) {
        foreach ($record->result() as $r) {
            $nestedData['email'] = $r->emailemail;
            $nestedData['name'] = $r->name;
            $nestedData['fathername'] = $r->fathername;
            $nestedData['phone'] = $r->phone;
            $nestedData['action'] = "<a href='#'></a>";

            $data[] = $nestedData;
        }
    }

    $json_data = array(
        "draw" => intval($this->input->post('draw')),
        "recordsTotal" => intval($totalData),
        "recordsFiltered" => intval($totalFiltered),
        "data" => $data
    );

    echo json_encode($json_data);

и в поле зрения:

<script type="text/javascript">
    $(document).ready(function() {
        $('#record-table').DataTable({
            "ajax": {
                url : "<?php echo site_url("mycontroller/dataa") ?>",
                type : 'POST'
            },
            columns: [
                        {data: "email"},
                        {data: "name"},
                        {data: "fathername"},
                        {data: "phone"},
                        {data: "action"},
                    ],

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