Динамо c дерево с PHP и jTree - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь найти другое решение этой проблемы здесь

Я пытался использовать библиотеку дерева jSon для кодирования моего ассоциативного массива, но по какой-то причине результат jSon неправильно сформирован, я не знаю, что делать ... мой PHP код указан ниже.

<?php
$trenino = array();

foreach ($hTwo as $k => $html_val) {
  if ($k < 2) continue;

  $new_string = explode('|',$html_val->nodeValue);

  $padre = $new_string[0]; //echo '<p>padre: '.$padre.'</p>';
  $figlio = $new_string[1]; //echo '<p>figlio: '.$figlio.'</p>';
  $desc = $new_string[2]; //echo '<p>desc: '.$desc.'</p>';
  $colore = $new_string[3]; //echo '<p>colore: '.$colore.'</p>';
  $lt = $new_string[4]; //echo '<p>lt: '.$lt.'</p>';
  $pallino = $new_string[5];
  $magazz = $new_string[6]; //echo 'magazzino: '.$magazz;

  $trenino['parent'][] = $new_string[0];
  $trenino['id'][] =  $new_string[1];
  $trenino['name'][] =  $new_string[2];
  $trenino['colore'][] = $new_string[3];
  $trenino['lt'][] = $new_string[4];
  $trenino['pallino'][] = $new_string[5];
  $trenino['magazz'][] = $new_string[6];

echo json_encode($trenino);
?>

это часть моего json результата:

{"parent":[""],"id":["MY00027770096"],"name":["REJANE 85MM BOTTONE E CHIAVE "],"colore":["50FF15"],"lt":["0"],"pallino":[""],"magazz":["NP"]}

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Спасибо, но я сделал это по-другому, так как мне нужны реальные идентификаторы из моих jSon данных. Я динамически создавал строку, модифицирующую ассоциативный массив, а затем манипулировал моей строкой, чтобы получить правильную строку данных jSon, чтобы позволить jsTree читать из этого. Посмотрите!

<code><?php
$trenino = array();

$custom_attr ='';
$json_string = '';

foreach ($hTwo as $k => $html_val) {
  if ($k < 2) continue;
  //echo $html_val->nodeValue;
  $new_string = explode('|',$html_val->nodeValue);

  $padre = $new_string[0]; //echo '<p>padre: '.$padre.'</p>';
  $figlio = $new_string[1]; //echo '<p>figlio: '.$figlio.'</p>';
  $desc = $new_string[2]; //echo '<p>desc: '.$desc.'</p>';
  $colore = $new_string[3]; //echo '<p>colore: '.$colore.'</p>';
  $lt = $new_string[4]; //echo '<p>lt: '.$lt.'</p>';
  $pallino = $new_string[5];
  $magazz = $new_string[6]; //echo 'magazzino: '.$magazz;

  $trenino['id'] =  $new_string[1];
  $trenino['parent'] = $new_string[0];

  $custom_attr =  '<span class="itmref">'.$new_string[1].'</span> <span class="itmdes">'.$new_string[2].'</span><span class="hide colore">'.$new_string[3].'</span><span class="lt">'.$new_string[4].' gg</span><span class="hide pallino">'.$new_string[5].'</span><span class="hide magazz">'.$new_string[6];
  $trenino['text'] = $custom_attr;



  $json_string .= json_encode($trenino);


}

//echo '<pre>',print_r($trenino),'
'; / * foreach ($ trenino как $ special_item) {echo '

'; var_dump ($ special_item); '

'; } * / $ json_string = '['. $ json_string. ']'; $ json_string = str_replace ('"parent": "",', '"parent": "#",', $ json_string); $ json_string = str_replace ('} {', '}, {', $ json_string); ?>
0 голосов
/ 01 апреля 2020

Добавьте счетчик к вашему коду, чтобы сгруппировать всю вашу информацию в один.

<?php
$trenino = array();
$count = 0;

foreach ($hTwo as $k => $html_val) {
  if ($k < 2) continue;

  $new_string = explode('|',$html_val->nodeValue);

  $padre = $new_string[0]; //echo '<p>padre: '.$padre.'</p>';
  $figlio = $new_string[1]; //echo '<p>figlio: '.$figlio.'</p>';
  $desc = $new_string[2]; //echo '<p>desc: '.$desc.'</p>';
  $colore = $new_string[3]; //echo '<p>colore: '.$colore.'</p>';
  $lt = $new_string[4]; //echo '<p>lt: '.$lt.'</p>';
  $pallino = $new_string[5];
  $magazz = $new_string[6]; //echo 'magazzino: '.$magazz;

  $trenino[$count]['parent'] = $new_string[0];
  $trenino[$count]['id'][] =  $new_string[1];
  $trenino[$count]['name'][] =  $new_string[2];
  $trenino[$count]['colore'][] = $new_string[3];
  $trenino[$count]['lt'][] = $new_string[4];
  $trenino[$count]['pallino'][] = $new_string[5];
  $trenino[$count]['magazz'][] = $new_string[6];
  $count++;

echo json_encode($trenino);
?>

Редактировать согласно комментариям:

Визуальный (вывод из Makiweb пример ):

enter image description here

Визуальный (фактический):

enter image description here

Разница в том, что они сгруппированы по этому первому числу [0], [1], et c в ожидании. Добавление переменной $count впереди сгенерирует это для вас.

...