微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据表编辑器 - 如何在编辑器表单中动态填充选择列表?

如何解决数据表编辑器 - 如何在编辑器表单中动态填充选择列表?

我正在尝试向 Datatables Editor 表单添加动态选择列表。这是我尝试过的:

var discipline_options = [];
  
 $.getJSON('program_data/get_disciplines.PHP',function (data) {
     $.each(data,function (index) {
         discipline_options.push({
             value: data[index].value,label: data[index].text
         });
     });
 editor.field( 'discipline_outcome.discipline_fk' ).update(discipline_options);
 });
 
            var editor = new $.fn.dataTable.Editor( {
                ajax: "program_data/discipline_outcome_data.PHP",table: "#discipline_outcome_table",template: '#discipline_outcome_form',fields: [  {
                    label: "discipline:",name: "discipline_outcome.discipline_fk",type: "select",placeholder: 'Choose discipline...',placeholderdisabled: false,placeholderValue: 0,options: []
                },...

get_disciplines.PHP 脚本是:

$data = array();

$query = "SELECT * FROM discipline";
$result = $connection->query( $query );

while ($row = MysqLi_fetch_array($result)) {
    $data[] = array("label"=>$row['discipline'],"value"=>$row['discipline_pk']);
}

$temp = array('disciplines[].discipline_pk'=>$data);
$json = array('options'=>$temp);
echo json_encode($json);

此脚本返回以下 JSON,但选择列表仍为空:

        {
      "options": {
        "disciplines[].discipline_pk": [
          {
            "label": "Emergency Medicine","value": "1"
          },{
            "label": "General Practice","value": "2"
          },{
            "label": "Internal Medicine","value": "3"
          }
        ]
      }
    }

解决方法

我使用:

var discipline_options = [];
             
$.getJSON("program_data/get_disciplines.php",function(data) {
        var option = {};
        $.each(data,function(i,e) {
            option.label = e.text;
            option.value = e.id;
            discipline_options.push(option);
            option = {};
        });
    }
).done(function() {
    editor.field('discipline.discipline_pk').update(discipline_options);
});

var editor = new $.fn.dataTable.Editor( {
                ajax: "program_data/discipline_outcome_data.php",table: "#discipline_outcome_table",template: '#discipline_outcome_form',fields: [  {
                    label: "Discipline:",name: "discipline.discipline_pk",type: "select",placeholder: 'Choose discipline...',placeholderDisabled: false,placeholderValue: 0,options: []
                },...

get_disciplines.php

$data = array();
 
$query = "SELECT * FROM discipline";
$result = $connection->query( $query );
 
while ($row = mysqli_fetch_array($result)) {
    $data[] = array("text"=>$row['discipline'],"id"=>$row['discipline_pk']);
}
 
echo json_encode($data);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。