невозможно получить и передать переменный сегмент URI для функции на стороне сервера данных

Я использую CodeIgniter и Datatable Server Side для отображения моих данных из базы данных. Я хочу получить URL сегмента из моего представления URL и передать этот сегмент моему контроллеру и показать его последнему столбцу в моей таблице. Но не сработало.

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

http://localhost/sosboard/admin/module/55

это мой контроллер

function data_module()
{
// Datatables Variables
$submenu_id     = $this->uri->segment(3);
$draw = intval($this->input->get("draw"));
$start = intval($this->input->get("start"));
$length = intval($this->input->get("length"));

$module= $this->m_admin->main_menu();
$data = array();

//$page = $data['write'];
foreach ($module->result() as $rows) {
$data[] = array(
$rows->title,
$rows->seq,
$rows->target,
$rows->icon_code,
$rows->active,
$submenu_id);
}
$output = array(
"draw" => $draw,
"recordsTotal" => $module->num_rows(),
"recordsFiltered" => $module->num_rows(),
"data" => $data
);
echo json_encode($output);
}

это мой вид HTML & Javascript

<div class="panel-body">
<table class='table' id="myTable">
<thead>
<tr>
<th>Main Menu</th>
<th>Seq</th>
<th>Target</th>
<th>Icon Code</th>
<th>Active</th>
<th>Action</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div><script>
$(document).ready(function() {
$('#myTable').DataTable({
"ajax": {
"url": "<?php echo site_url('admin/data_module/') ?>",
"type": "GET"}
});
});
</script>

все столбцы в порядке, но последний столбец не отображается.

Пожалуйста помоги.
Спасибо

0

Решение

Это не работает, потому что вы пытаетесь получить сегмент из URI /admin/module/55 когда вы на самом деле на странице /admin/data_module/ через ajax. Таким образом, URI 3 и 4 не существуют так, как вы ожидаете. Только uri сегменты: (1) sosboard (2) admin (3) data_module существует на этой странице.

Я бы предложил передать параметр как получить

$(document).ready(function() {
$('#myTable').DataTable({
"ajax": {
"url": "<?php echo site_url('admin/data_module/') ?>",
"type": "GET",
'data': { param1: '<?php echo $this->uri->segment(3); // module ?>' }
}
});
});

Data_module:

function data_module()
{
// Datatables Variables
$submenu_id     = $this->input->get('param1');

Если вам нужно получить 55 из uri, используйте сегмент 4. Если вам нужно передать оба, просто добавьте другой параметр в ajax и получите его так же, как я показал.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]