如何将ajax上的数据传递给codeigniter控制器
Posted
技术标签:
【中文标题】如何将ajax上的数据传递给codeigniter控制器【英文标题】:how to pass data on ajax to codeigniter controller 【发布时间】:2021-05-12 02:37:42 【问题描述】:我有一个选择选项。我想将选定的选项值从 ajax 传递给我的控制器。但是,当我尝试从控制器回显它时,我得到的值为 null(所以我可以看到该值)。
这就是我显示选择选项的方式:
<form class="form-horizontal" action="#">
<select name="categories" onchange="ipilihCat()" id="categories" class="js-example-placeholder-single form-control" style="width: 200px;">
<option value="">pilih category</option>
<?php
foreach ($cats as $cats)
echo '<option value="' . $cats['category'] . '">' . $cats['category'] . '</option>';
?>
</select>
</form>
这是我使用的 ajax 代码:
function ipilihCat()
var selected = $('#categories').val();
$('#target').DataTable(
"processing": true,
"serverSide": true,
"order": [],
"ajax":
"data":
'cats': selected
,
"dataType": 'json',
"url": "<?= base_url('welcome/iselCats'); ?>",
"type": "POST",
"success": function(data)
console.log(data);
,
"columnDefs": [
"target": [-1],
"orderable": false
],
);
在我的控制器中,我像这样检查它:
public function iselCats()
$cats = $this->input->post('cats');
echo $cats;
我认为当我从 ajax 传递数据时存在问题。 这是传递数据的正确命令吗?
"data":
'cats': selected
,
【问题讨论】:
这里的selected
是什么?
嗨,感谢您回答我的问题。我已经更新了我的问题。来自var selected = $('#categories').val();
加载时调用该代码?如果是,您的选择框将选择第一个选项,其中包含value=""
。
你的 ipilihCat() 定义在哪里??
我用这个onChange = ipilihCat()
设置了选择选项,函数 ipilihCat() 包含 ajax 代码
【参考方案1】:
更改代码中的以下行
$('#target').DataTable(
到
var table = $('#target').DataTable(
并添加以下代码
$('#categories').on("change",function()
table.ajax.url( "<?= base_url('welcome/iselCats'); ?>?cats="+this.value ).load();
);
这会将猫发送到您的服务器并刷新表格,其余过滤代码将在服务器端手动处理
【讨论】:
【参考方案2】:试试下面的改动,已经用过几次了。
"url": "<? echo base_url('welcome/iselCats'); ?>",
【讨论】:
以上是关于如何将ajax上的数据传递给codeigniter控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何将表单 FormSeetController 中的数据传递给 ViewController?
如何将计时器中的数据传递给新的 ViewController (Swift 3)
如何通过 PageViewController 将 viewController 的数据传递给 pageViewController 的第二个 ViewController