rreeee
Saya mempunyai treeview yang dibuat menggunakan PHP dan fungsi yang mengekstrak treeview mengekstrak kategori dan subkategorinya dengan betul. Jadual kategori dalam pangkalan data mempunyai lajur yang memegang nilai yang ditentukan (1/0), dengan 1 mewakili kategori utama dan 0 mewakili subkategori. Masalah yang saya hadapi ialah apabila saya menarik kategori daripada pangkalan data, tidak ada bezanya sama ada kategori itu adalah kategori utama atau subkategori. Kesemuanya dipaparkan sebagai elemen li dan saya menggunakan pemformatan CSS pada paparan pokok untuk mencipta ikon folder pada item senarai. Persoalannya ialah bagaimana untuk memaparkan kategori utama dengan nilai 1 dalam jadual kategori sebagai elemen ul yang mengandungi ikon folder yang boleh dibuka untuk menunjukkan kandungan di dalam, dan subkategori dengan nilai 0 dalam jadual kategori harus dipaparkan sebagai li elemen tanpa Sebarang ikon folder (bermaksud hanya nama subkategori dipaparkan sebagai teks).
Keluaran saya
Saya perlu mendapatkan output seperti yang ditunjukkan dalam gambar.
Saya cadangkan anda mengubah suai kod anda untuk mengambil kira sama ada item tersebut adalah kategori utama atau subkategori.
"Simpan lajur dengan nilai yang ditentukan (1/0), dengan 1 mewakili kategori utama dan 0 mewakili subkategori" - Katakan lajur itu dinamakan
type
.\n"; while($data=mysqli_fetch_array($result)) { $output.= '- '.$data['name'];
if ($data['type']) {
$output.=showcategory($data['id']);
}
$output.="
";
}
$output.="
"; return $output; }Anda sepatutnya boleh menggunakan CSS untuk menggayakan nod subkategori untuk dipadankan
li.type0
Saya mengesyorkan anda hanya menanya pangkalan data sekali sahaja dan bukannya meletakkan pertanyaan pangkalan data ke dalam fungsi rekursif.
Anda perlu menyemak kedudukan utama item menu (berdasarkan nilai jenis 0/1). Ini akan menambah class='main' pada projek utama dan anda boleh menggunakan css untuk menggayakan ikon utama. Jom cuba ubah suai ini.
'; foreach ($data as $item) { if ($item['parent_id'] == $parentId) { $menu .= '- ';
// Recursive call to build sub-menu if it has children
$submenu = showcategory($data, $item['id']);
if ($submenu) {
$menu .= $submenu;
}
$menu .= '
';
}
}
$menu .= '
'; return $menu; } $sql = "select * from categories where parent_id='".$parentid."'"; $result = mysqli_query($GLOBALS['conn'],$sql); $data=mysqli_fetch_array($result) $menu = showcategory($data); echo $menu;