Ben bir iç içe sırasız liste jQuery eklentisi mcdropdown için kullanılacak bir ön uç web uygulaması üzerinde çalışıyorum.
Dizilerin iç içe geçmiş bir dizi: İşte PHP veri yapısıdır:
Array
(
[0] => Array
(
[fullpath] => ../foil/alphanumeric/
[depth] => 0
)
[1] => Array
(
[fullpath] => ../foil/alphanumeric/letters/
[depth] => 1
)
[2] => Array
(
[fullpath] => ../foil/alphanumeric/numbers/
[depth] => 1
)
[3] => Array
(
[fullpath] => ../foil/alphanumeric/numbers/symbols/
[depth] => 2
)
)
Temelde, ben bunu biraz değiştirilmiş, this question on SO adlı mükemmel cevabı aldı:
global $fullpaths; // $fullpaths contains the above data structure in print_r
$result = '';
$currentDepth = -1;
while(!empty($fullpaths))
{
$currentNode = array_shift($fullpaths);
if($currentNode['depth'] > $currentDepth)
{
$result .='<ul>';
}
if($currentNode['depth'] < $currentDepth)
{
$result .=str_repeat('</ul>', $currentDepth - $currentNode['depth']);
}
$result .= '<li>'. $currentNode['fullpath'] .'</li>';
$currentDepth = $currentNode['depth'];
if(empty($fullpaths))
{
$result .= str_repeat('</ul>', 1 + $currentDepth);
}
}
print $result;
ve aşağıdaki çıktıyı aldım:
<ul>
<li>../foil/alphanumeric/</li>
<ul>
<li>../foil/alphanumeric/letters/</li>
<li>../foil/alphanumeric/numbers/</li>
<ul>
<li>../foil/alphanumeric/numbers/symbols/</li>
</ul>
</ul>
</ul>
Mcdropdown jQuery eklentisi tarafından kabul edilemez olan, böyle bir şey bekliyor:
<li rel="1">
'Alphanumeric'
<ul>
<li rel="2">'Letters'</li>
<li rel="3">'Numbers'
<ul>
<li rel="4">'Symbols'</li>
</ul>
</li>
</ul>
</li>
Dürüst olmak gerekirse, ben oldukça bu soruya gelen cevabı nasıl çalıştığını anlamıyorum, benim durum ile başa çıkmak için çözüm değiştirmeye çalışıyor, ama yine de başarısız olmuştur.
Herhangi bir yardım ve öneri daha önceden tahsis edilir.