Таблица данных для кнопки «Редактировать / Удалить» (Codeigniter) - передать параметр в тег href - PullRequest
0 голосов
/ 05 октября 2018

Кто-нибудь знает, как я могу передать идентификатор строки для редактирования / удаления?Я не могу понять это.

Контроллер:

открытая функция branch_page () {

$this->load->helper('url');
$this->load->helper('form');
$this->load->model('insertBranch_model');
  // Datatables Variables

$draw = intval($this->input->get("draw"));
$start = intval($this->input->get("start"));
$length = intval($this->input->get("length"));

$query = $this->db->select('branchCode,branchName,email,phone,date_created, CONCAT(address1, " ", address2, " ", address3) AS address',FALSE)
                ->where('status','active')
                ->get('branchdetails');

$data = [];

foreach($query->result() as $r) {
   $data[] = array(
            $r->branchCode,
            $r->branchName,
            $r->address,
            $r->email,
            $r->phone,
            $r->date_created,
            $r->href='<a href="editBranch">Edit</a>
            <a href="deleteBranch">Delete</a>'
   );
}

$result = array(
   "draw" => $draw,
    "recordsTotal" => $query->num_rows(),
    "recordsFiltered" => $query->num_rows(),
    "data" => $data
);


echo json_encode($result);
exit();

}

Просмотр:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Branch List</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.13/datatables.min.css"/>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.13/datatables.min.js"></script> 
    </head>
    <body>
    <h1>Branch List</h1>
    </body>

<form method="post" action="<?=site_url('main_controller/branch_page/');?>">
<table id="branch-table" class="table table-bordered table-striped table-hover">
<thead>
<tr>
   <th>Branch Code</th>
   <th>Branch Name</th>
   <th>Address</th>
   <th>Email</th>
   <th>Contact Number</th>
   <th>Date Created</th>
   <th>Action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

<?php echo '<a href = "addBranch">Click Here</a> to add new branch.'; ?>

</form>
</html>

<script type="text/javascript">
$(document).ready(function() {

    $('#branch-table').DataTable({
        "ajax": {
            url : "<?php echo site_url("main_controller/branch_page")?>",
            type : 'GET'
        },
    });
});

</script>

Я могу перейти на страницу редактирования, если я напишу id / branchCode вручную в URL.Я включил и вид и контроллер.Теперь, как мне получить его, передав его через кнопку «Изменить»?Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вам нужно добавить идентификатор строки или ваш код филиала из таблицы следующим образом:

$query = $this->db->select('branchCode,branchName,email,phone,date_created, CONCAT(address1, " ", address2, " ", address3) AS address',FALSE)
                ->where('status','active')
                ->get('branchdetails');

$data = [];

foreach($query->result() as $r) {
   $data[] = array(
            $r->branchCode,
            $r->branchName,
            $r->address,
            $r->email,
            $r->phone,
            $r->date_created,
            $r->href='<a href="editBranch" data-code="'.$r->branchCode.'" class="linkEdit">Edit</a>
            <a href="deleteBranch" data-code="'.$r->branchCode.'" class="linkDelete">Delete</a>'
   );
}

$result = array(
   "draw" => $draw,
    "recordsTotal" => $query->num_rows(),
    "recordsFiltered" => $query->num_rows(),
    "data" => $data
);


echo json_encode($result);
exit();

Затем вы используете jquery для получения атрибута кода данных, например:

$(".linkEdit").click(function(){
    editBranch($(this).attr("data-code"));
});
$(".linkDelete").click(function(){
    deleteBranch($(this).attr("data-code"));
});

В вашей функции editBranch и deleteBranch вам нужно перехватить параметр branchCode.

0 голосов
/ 05 октября 2018

Вы можете передать переменную в URL, как показано ниже

foreach($query->result() as $r) 
{
   $data[] = array(
            $r->branchCode,
            $r->branchName,
            $r->address,
            $r->email,
            $r->phone,
            $r->date_created,
            $r->href=''<a href="'.site_url('main_controller/editBranch/'.$r->branchCode).'">Edit</a>
            <a href="deleteBranch">Delete</a>'
   );
}

Вам также нужно изменить URL для удаления

...