簡體   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