jsTree获取选定节点的ID作为数组

时间:2018-12-12 06:46:16

标签: php ajax jstree

我正在使用jsTree插件在我的codeigniter Web应用程序中生成树菜单。我的任务是获取所选节点的ID,并获取一些有关该节点的详细信息,并将其显示在同一页面中。因此,我使用了jstree的AVAssetExportSession事件。这是我的代码:

changed

控制器:

    <script type="text/javascript">
var url="<?php echo base_url();?>";
$(document).ready(function () {
$('#html').jstree({
"check_callback" : true,
'core' : {
'data' : {
"url" : url+"Applications/getfamilytree",
"dataType" : "json" // needed only if you do not supply JSON headers
}
},
'plugins' : ['state','changed','wholerow']
}).on("changed.jstree", function (e, data) {
var id = data.changed.selected;
console.log(id);
callAjax(id);

})

});
function callAjax(id)
{
$.ajax({
url: url+"Applications/populatefamilymenu",
dataType: 'json',
type: 'POST',
data: {id: id},
success: function(data){
console.log(data);
},
error: function(jqXHR, exception){
console.log(jqXHR.responseText);
}
});
}
</script>

型号

    public function populatefamilymenu()
{
$id = $this->input->post('id');
$result = $this->Family_model->getfamilyMembersDetails($id);
echo json_encode($result);  
}

但是当我获得选定节点的ID并使用ajax将其传递给控制器​​函数时,返回的数据显示错误:

  

Php致命错误:数组到字符串的转换

当我在控制台中检查ajax发布错误时,其显示:

  

错误号:1054

“ where子句”中的未知列“ Array”

SELECT *,public function getfamilyMembersDetails($id) { $this->db->select('*,tab_relations.relation,E2.name AS parentname'); $this->db->from('tab_members'); $this->db->join('tab_relations', 'tab_relations.relation_id = tab_members.relation_id'); $this->db->join('tab_members AS E2', 'E2.member_id = tab_members.parent_id','left outer'); $this->db->where('tab_members.family_id', $id); $query = $this->db->get(); return $query->result(); } 。{{1 }},tab_relationsrelationE2   来自name   在parentname上加入tab_memberstab_relations = tab_relationsrelation_id   tab_membersrelation_id上的tab_members左外连接。E2 = E2member_id   tab_membersparent_id =数组

文件名:D:/xampp/htdocs/abc/admin/system/database/DB_driver.php

我使用了console.log(id),结果显示为:

enter image description here

我认为数组来自:

tab_members

这将返回一个数组。那么我如何只获取节点的ID?谁能帮我吗?

1 个答案:

答案 0 :(得分:2)

由于data.changed.selected似乎返回一个包含id作为第一个元素的数组,因此您需要使用以下命令访问id:

var id = data.changed.selected[0];

现在id将包含实际ID而不是数组。