繁体   English   中英

如何将 ajax 上的数据传递给 codeigniter controller

[英]how to pass data on ajax to codeigniter controller

我有一个 select 选项。 我想将选定的选项值从 ajax 传递给我的 controller。 但是,当我试图从我的 controller 回显它时,我得到的值是 null (所以我可以看到这个值)。

这就是我显示 select 选项的方式:

<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
    }],
});
}

在我的 controller 中,我这样检查:

public function iselCats(){
   $cats = $this->input->post('cats');
   echo $cats;
}

我认为当我从 ajax 传递数据时有问题。 我这是传递数据的正确命令吗?

"data": {
            'cats': selected
        },

更改代码中的以下行

$('#target').DataTable({

var table = $('#target').DataTable({

并添加以下代码

$('#categories').on("change",function(){
    table.ajax.url( "<?= base_url('welcome/iselCats'); ?>?cats="+this.value ).load();
});

这会将猫发送到您的服务器并刷新表,过滤代码的 rest 将在服务器端手动处理

尝试以下更改,已使用过几次。

"url": "<? echo base_url('welcome/iselCats'); ?>",

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM