我有一个特定的bootstrap树视图的问题,我已经尝试了一切,但节点没有扩展,我通过一个加载文件使用ajax请求,我检索来自数据库的信息,数据正常显示,唯一一个我已经尝试了treeview引导程序提供的所有方法,但它返回它不知道使用的方法,下面我将发送我使用的特定代码。
Function that calls a tree:
var levelTree = 2;
function getTree() {
var data = '';
$.ajax({
url: 'atividades/atividades_load.php',
data: {idObraAtiva: <?php echo $idObra; ?>},
async: false,
dataType: 'json',
type: 'post',
beforeSend: function () {
},
success: function (retorno) {
data = retorno;
console.log(retorno);
},
error: function () {
bootbox.alert('Erro, contate o suporte!');
}
});
return data;
}
$('#atividadeTree').treeview({
data: getTree(),
levels: levelTree,
backColor: "#C4E3F3",
onNodeSelected: function (event, data) {
if (data.qtdfilhos == 0) {
$('#table_Andamento').bootstrapTable('refresh', {url: 'atividades/atividade_andamento_load.php?q=' + data.id});
}
$('#table_AtividadeFilha').bootstrapTable('refresh', {url: 'atividades/atividade_filha_load.php?p=' + data.id});
$('#fmAndamento_idatividade').val(data.id);
$('#fmAtividadeSub_idAtividade').val(data.id);
},
onNodeExpanded: function (event, data) {
$.ajax({
url: 'atividades/atividades_load.php',
data: {idObraAtiva: <?php echo $idObra; ?>,idNo:data.id},
async: false,
dataType: 'JSON',
type: 'POST',
beforeSend: function (){
},
success: function (filho){
$('#atividadeTree').treeview('addNode',[filho, data.id,
{silent: false} ]);
console.log(filho);
},
error: function () {
bootbox.alert('Erro, contate o suporte!');
}
});
}
});
Function that calls the data, and reorganizes the treeview
<?php
include('../../sessao.php');
require_once('../../J3_FrameWork/Conexao.php');
function getItemPai($_arrLista, $_id)
{
foreach ($_arrLista as $item) {
if ($item->id == $_id) {
if (!property_exists($item, 'nodes')) $item->nodes = array();
return $item;
}else
if (property_exists($item, 'nodes')) {
if (is_array($item->nodes)) {
$aux = getItemPai($item->nodes, $_id);
if ($aux != null)
return $aux;
}
}
}
return null;
}
$idObra = $_REQUEST['idObraAtiva'];
if (isset($_REQUEST['idNo'])) {
$idNo = $_REQUEST['idNo'];
}else{
$idNo = -1;
}
$conexao = Proxy::mrObra();
$param = array("_parameters" => array($idObra, $idNo));
$resultado = $conexao->comando('GetAtividadesArvore', json_encode($param));
$resultado = json_decode($resultado);
$lista = $resultado->result[0];
$listanova = array();
foreach ($lista as $item) {
$novoitem = new stdClass();
$novoitem->id = $item->ID;
$novoitem->text = $item->DESCRICAO. ' - ' .$item->QTDFILHOS;
$novoitem->qtdfilhos = $item->QTDFILHOS;
$novoitem->valor = $item->VALOR;
$novoitem->qtdativsub = $item->QTDATIVSUB;
if($item->QTDFILHOS > 0)
{
$novoitem->nodes = array();
}
if ($item->IDPAI == -1) {
array_push($listanova, $novoitem);
} else {
array_push($listanova, $novoitem);
}
}
echo json_encode($listanova);
?>
Função que chama os dados, e reorganiza a treeview
<?php
include('../../sessao.php');
require_once('../../J3_FrameWork/Conexao.php');
function getItemPai($_arrLista, $_id)
{
foreach ($_arrLista as $item) {
if ($item->id == $_id) {
if (!property_exists($item, 'nodes')) $item->nodes = array();
return $item;
}else
if (property_exists($item, 'nodes')) {
if (is_array($item->nodes)) {
$aux = getItemPai($item->nodes, $_id);
if ($aux != null)
return $aux;
}
}
}
return null;
}
$idObra = $_REQUEST['idObraAtiva'];
if (isset($_REQUEST['idNo'])) {
$idNo = $_REQUEST['idNo'];
}else{
$idNo = -1;
}
$conexao = Proxy::mrObra();
$param = array("_parameters" => array($idObra, $idNo));
$resultado = $conexao->comando('GetAtividadesArvore', json_encode($param));
$resultado = json_decode($resultado);
$lista = $resultado->result[0];
$listanova = array();
foreach ($lista as $item) {
$novoitem = new stdClass();
$novoitem->id = $item->ID;
$novoitem->text = $item->DESCRICAO. ' - ' .$item->QTDFILHOS;
$novoitem->qtdfilhos = $item->QTDFILHOS;
$novoitem->valor = $item->VALOR;
$novoitem->qtdativsub = $item->QTDATIVSUB;
if($item->QTDFILHOS > 0)
{
**$novoitem->nodes = array();**
}
if ($item->IDPAI == -1) {
array_push($listanova, $novoitem);
} else {
array_push($listanova, $novoitem);
}
}
echo json_encode($listanova);
?>