在DataTables中为渲染选择设置初始选定选项

Z M*_*ick 2 javascript ajax jquery datatables

我有一个问题是在DataTable中附加选定的值选项.

这是我的JavaScript代码

  var table = $('#tablesurvey').DataTable( {
    "ajax": {
        "url": '<?php echo site_url('data'); ?>',
        "type": "POST"
    },

    "columns": [
        {"data": "id_vote"},
        {"data": "nama"},
        {"data": "nik"},
        {"data": "desa"},
        {"data": "rt"},
        {"data": "vote"}
    ],
        "columnDefs": [ {
            "targets": -1,
            "render": function (data, type, row, meta){
             return "<select class='pilihan form-control' id='pilihan'><option value='0'>--Pilihan--</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option</select>";
         }
        } ],
    } );
Run Code Online (Sandbox Code Playgroud)

结果之前

1]

结果我想要的

2]
如何为渲染的选择框设置初始选定选项?

dav*_*rad 8

您可以以<select>编程方式构建,即逐步添加<option>并与之进行比较data.vote.或者您可以使用更通用的基于jQuery的解决方案:

render: function (data, type, row, meta){
  var $select = $("<select class='pilihan form-control' id='pilihan'><option value='0'>--Pilihan--</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option></select>");
  $select.find('option[value="'+data.vote+'"]').attr('selected', 'selected');
  return $select[0].outerHTML
}
Run Code Online (Sandbox Code Playgroud)

  • 工作完美,我将**data.vote**更改为**数据**,谢谢@davidkonrad (2认同)