Andre: Jedem Menü Listenpunkt eine eigene ID zuweisen

Hallo zusammen,

ich scheitere hier leider mit meinen begrenzten PHP Kenntnissen und hoffe auf Hilfe.
Ich habe folgenden Code, der mir die Kategorielisten bildet:

  
$category_html .= "<li " . $current . " class='item " . (($hasChilds) ? 'parent' : '') . $active . "'>";  
       if ($hasChilds) $category_html .= "<div class='arrow'><span>+</span></div>";  
$category_html .= "<a href='$link'><span class='menuitem'>" . $category_name . "</span></a>";  
			  
if ($hasChilds) {  
	$category_html .= "<ul class='submenu'>";  
	$this->traverse_tree_down($category_html, $category_child_id, $level);  
	$category_html .= "</ul>";  
	}  
$category_html .= "</li>";  
  

Nun würde ich jedem Menüpunkt li (sowohl Untermenü als auch Hauptmenü) gern eine eigene ID oder Klasse zuweisen. Könnte mir dabei jemand helfen (z.b. menu1, menu2, submenu1, submenu2 usw)?

Danke und viele Grüße
ANdré

  1. Nun würde ich jedem Menüpunkt li (sowohl Untermenü als auch Hauptmenü) gern eine eigene ID oder Klasse zuweisen. Könnte mir dabei jemand helfen (z.b. menu1, menu2, submenu1, submenu2 usw)?

    So wie das aussieht ist die Lösung des Problems in der Funktion traverse_tree_down() zu finden. Da muss es eine Schleife geben, welche die "li" zusammenbaut. In die Schleife muss lediglich ein Zähler rein, der ovr der schleife definiert wird.
    In Pseudocode sieht das so aus
    counter = 0;
    schleifeenanfang
    {
       li ... class = class_"counter";
       counter++;
    }

    Gruß
    schwitzender
    T-Rex

  2. Hi!

    if ($hasChilds) $category_html .= "<div class='arrow'><span>+</span></div>";

    Welchen Zweck hat das span-Element dort?

    $category_html .= "<a href='$link'><span class='menuitem'>" . $category_name . "</span></a>";

    Und welchen hat es hier? Warum ist das class-Attribut nicht gleich dem a zugewiesen?

    Nun würde ich jedem Menüpunkt li (sowohl Untermenü als auch Hauptmenü) gern eine eigene ID oder Klasse zuweisen.

    Einen Zähler (wegen der Rekursion global angelegt oder immer durchgeschleift) mitlaufen zu lassen ist nicht das Problem. Und dann wie weiter? Wie sprichst du die Elemente dann an, wenn du nicht weißt, welche id/class sie bekommen haben? Haben sie nicht vielleicht bereits eine, beispielsweise eine Datensatz-ID oder den (eindeutigen) Key eines Array-Feldes?

    Lo!