如何解决数据表编辑器 - 如何在编辑器表单中动态填充选择列表?
我正在尝试向 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: []
},...
$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 举报,一经查实,本站将立刻删除。