Antworten auf deine Fragen:
Neues Thema erstellen

[PHP] Sitemap

Hey ich habe eine Funktion geschrieben mit deren Hilfe ich eine Sitemap einer Website ausgeben lassen kann.

Ansich funktioniert sie einwandfrei, allerdings gibt es doch einen kleinen, aber gravierenden Fehler, der eigentlich nur auffällt, wenn man den Links einen Hover-Befehl gibt, damit sich die Farb der Links ändert.

PHP:
$sql = "SELECT id, pid, text FROM menu";
  $query = mysql_query($sql);
  $i=0;
 
  while($re = mysql_fetch_array($query))
  {
   // Hauptmenü - IDs
   if($re[1] == 0)
   {
    $mainmenu[$i] = $re[0]; 
   }
 
   $ids[$i] = $re[0];
 
   // Unterkategorien - IDs mit zugehörigen PIDs
   if($re[1] >0)
   {
    $submenu[$re[0]] = $re[1]; // $submenu[id] = pid
   }
 
   $linktext[$re[0]] = $re[2];
 
   $i++;
  }
 
 
 
  // Links genererieren
  foreach($ids as $id)
  {
   if($id <= count($mainmenu))
   {
    $site = '?site='.$id;
    $atag[$id] = '<a href="'.$PHP_SELF.$site.'">';
   }
   else
   { 
    $site = '?site='.$submenu[$id];
    $sub = '&sub='.$id;
 
    $atag[$id] = '<a href="'.$PHP_SELF.$site.$sub.'">';
   }
  }
 
  // Struktur anlegen
  foreach($mainmenu as $mainval) // Hauptmenü as ID
  {
   if($mainval > 1) // Startseite wird nicht angezeigt, da ID = 0
   {
    echo '<div class="sitemapblock">';
    echo '<b><h5>'.$atag[$mainval].$linktext[$mainval].'</a></h5></b><br />';
 
    foreach($submenu as $subkey => $subval) // Untermenü as ID => PID
    {
     if($subval == $mainval) // PID == ID
     {
      echo $atag[$subkey].$linktext[$subkey].'<br />';
     }
    }
    echo '</div>';
   }
  }

Ich sage mal ich habe folgende Menüpunkte, in Klammern stehen die Unterpunkte des jeweiligen Hauptpunktes:

Startseite, Team (Inhaber, Angestellte), Leistungen (Kochen, Putzen) etc.

Der Link der Startseite soll nicht angezeigt werden (siehe Code), deswegen stehen dann hinterher Team (Inhaber, Angstellte) und Leistungen (Kochen, Putzen) jeweils in einem DIV, die dann per Float nebeneinander angezeigt werden.

Die Darstellung ist auch super, die Links funktionieren alle wie ich möchte.
Wenn ich bei dem Team-DIV über die Links fahre werden sie auch per Hover anders eingefärbt, ALLERDINGS:

Wenn ich in dem zweiten DIV (Leistungen) ober- und unterhalb des Links "Leistungen" mit der Maus herfahre, also somit noch keinen Link des Leistungen-DIVs berührt habe, wird der letzte Link aus dem vorherigen TEAM-DIV grün markiert (hover), als ob er mehrfach wiederholt sich in das nächste DIV dazwischen gequetscht hätte. Und wenn ich darauf klicke wird der Link auch ausgeführt.

Das heißt dass ein DIV den letzten Link seines Vorgängers irgendwie erstellt, ohne dass man diesen sehen, aber dafür anklicken kann.

Die Breite der DIVs hatte ich auch probeweise sehr hoch eingestellt, damit die DIVs nicht nebeneinander liegen, allerdings tritt dieser Effekt weiterhin auf. Also muss ansich irgendetwas mit meinen IF-Anweisungen nicht stimmen, dass die Links, wo die ID mit der Parent-ID nicht übereinstimmen, in dem nächsten Schleifengang der foreach-Schleife trotzdem verarbeitet werden. oO


Hatte wer schonmal so ein ähnliches Problem?
 

gagei

Noch nicht viel geschrieben

AW:
PHP:
 Sitemap[/b]

Poste mal den Inhalt des array. Wie(per js?), wo und wie oft wird das Script aufgerufen?
 
AW:
PHP:
 Sitemap[/b]

Welches? Ich habe da mehrere. ^^
 
Das Script wird lediglich einmal aufgerufen und zwar unten im Footer der Seite.
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Sitemap[/b]

[quote="aliasltb, post: 1426146"]aber gravierenden Fehler, der eigentlich nur auffällt, wenn man den  Links einen Hover-Befehl gibt, damit sich die Farb der Links ändert.[/quote]

...und welcher "Fehler" ist das bitte?
Du schreibst viel, doch verstehe ich nicht wirklich, wo Dein Ansatz ist.
 

M3g4Star

Nicht mehr ganz neu hier

AW:
PHP:
 Sitemap[/b]

Hallo
Hilfreich dazu wären: 

1. dein generierter HTML Code (die Sitemap) & 2. der entsprechende Teil deiner CSS Datei
Es scheint wohl mehr ein CSS / HTML Problem als ein PHP Problem zu sein. 

Gruß M3g4
 
AW:
PHP:
 Sitemap[/b]

Ahhh danke. Ich vergesse JEDES mal den generierten HTML-Code anzusehen wenn es Probleme gibt.
 
Lag daran, dass ich vergessen hatte die Links, die erstellt werden mit </a> wieder zu schließen. Jetzt funktioniert es wieder. :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.526
Neuestes Mitglied
Winfriedtesmer
Oben