Andreas: If-Abfrage klappt nicht

Hallo,

jetzt habe ich mal darüber geschlafen und werde jetzt mein Problem NEU schildern, so das einer Lösung nichts mehr im Weg stehen kann

<?//---------- Aus der DB verlinkte  Menüpunkte ausgeben ----------
$menue_select = mysql_query("select * from wsc_menu order by menuid");

while($row = mysql_fetch_array($menue_select))
{
echo "<a href="#">".$menu."</a>";
}
?>
Ergebnis =
Menü1 | Menü2 | Menü3 | Menü4 | Menü5 | Menü6

Wenn man mit der Maus über einen Link geht soll folgendes passieren

Zu jedem Menüpunkt gibt es ein Submenü das in einem Layer/Ebene definiert ist
Wenn jetzt die Mause über einen Hauptmenüpunkt geht
wird die dazugehörige Ebene sichtbar
verlässt die Maus den Link ist die Ebene dann nicht mehr Sichtbar.

zum Script=
<?//---------- Aus der DB verlinkte  Menüpunkte ausgeben mit MouseOver für Layer2 der Sichtbar wird bzw nicht Sichtbar ----------
$menue_select = mysql_query("select * from wsc_menu order by menuid");

while($row = mysql_fetch_array($menue_select))
{
if($menuid == 2)
{
//----- Sichtbar -----
echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','show')">".$menu."</a>";
}
else
{
//----- nicht Sichtbar -----
echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','hide')">".$menu."</a>";
}
}
?>

zum Problem:
Jetzt habe ich ja nicht nur ein Menüpunkt mit einem Submenü/Layer/Ebene sondern möchte das für jede menuid abfragen
nur mit Switch/case oder if, elseif, else bekomme ich das bis jetzt nicht hin
Hier meine Versuche:

Beispiel für if-Abfarge
<?//---------- Aus der DB verlinkte  Menüpunkte ausgeben mit MouseOver für Layer2 der Sichtbar wird bzw nicht Sichtbar ----------
$menue_select = mysql_query("select * from wsc_menu order by menuid");

while($row = mysql_fetch_array($menue_select))
{
if($menuid == 1)
{
//----- Sichtbar -----
echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer1','','show')">".$menu."</a>";
}
elseif($menuid == 2)
{
echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer2','','show')">".$menu."</a>";
}
elseif($menuid == 3)
{
echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer3','','show')">".$menu."</a>";
}
else
{
//----- nicht Sichtbar -----
echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer2','','hide')">".$menu."</a>";
}
}
?>

Wenn ich jetzt mit der Maus über die Links gehe erhalte ich überall die gleiche menuid
wenn ich die Abfage weg lasse, dann klappt es auch.
Also sind die Werte auch richtig in der DB
es müsste für jeden Menüpunkt bei der Abfrage die eigene menuid stehem

Menü1 = menuid1
Menü2 = menuid2
Menü3 = menuid3
...

So ich glaube das war jetzt sehr genau beschrieben
wer kann mir anhand eines Beispiel die Abfrage machen,
so das auch jeder Menupunkt bei MouseOver seine eigene menuid hat

das wäre super

Danke
Andreas

  1. Hallo,

    while($row = mysql_fetch_array($menue_select))

    Hier liegt das Problem. Du erzeugst ein Array $row mit den Werten, versucht dann aber über die Variable $menueid drauf zuzugreifen. Ersetze doch mal $menueid mit $row[menueid], also mit dem Wert aus Deiner SQl-Abfrage.

    Mal noch nebenbei ein Optimierungsvorschlag:
    Wenn sich die Namen des Layers wirklich nur in ihrer Nummerrierung ändern. wieso dann überaupt die Abfragen? Tut's da nicht folgender Code genauso:

    echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer".$menueid."','','show')">".$menu."</a>";

    Grüße aus Würzburg
    Julian

    1. Hallo,

      »»Ersetze doch mal $menueid mit $row[menueid], also mit dem Wert aus

      Tschuldigung habe ich hier vergessen ist aber im Script vorhanden
      Problem belibt das gleiche

      Mal noch nebenbei ein Optimierungsvorschlag:

      Kommt noch, war nur für mich für die Verdeutlichung der Layer

      Will erst einmal das Problem mit der Abfrage gelöst haben
      brauche Sie wegen
      sichtbar
      nicht sichtbar

      Andreas

      1. Hallo,

        Tschuldigung habe ich hier vergessen ...

        Kein Problem, kommt vor.Ist aber halt doch der Ansatz für jedes Problem erst mal die Rahmenbedingungen, Syntax usw. zu prüfen.

        Ok, die Abfrage scheint ja immer in den else-Fall zu gehen (oder?).
        Wie sieht es aus, wenn die IDs in Anführungszeichen gepackt sind? Dürfte zwar dasselbe sein... - eigentlich dürfte die Abfrage aber ja auch schon passen.

        Grüße aus Würzburg
        Julian

        P.S: Layer2 ist derzeit zweimal als Name vergeben; einmal "show", einmal "hide".

        1. Hallo,

          »»Dürfte zwar dasselbe sein... - eigentlich dürfte die Abfrage aber ja auch schon passen.

          ist das gleiche

          P.S: Layer2 ist derzeit zweimal als Name vergeben; einmal "show", einmal "hide".

          wenn Bedingung erfüllt
          show für Sichtbar

          nicht erfüllt
          hide für nicht Sichtbar

          Andreas

          1. Hallo,

            Vielleicht solltest Du doch einmal das ganze wie von Sven vorgeschlagen als statische Seite erstellen, dem Validator zum zerlegen geben, dann nochmal selbst im Quellcode nach Ungereimtheiten suchen, und _erst_dann_ mit PHP verbinden und das dortige Ergebnis mit dem passenden statischen Code vergleichen.

            Grüße aus Würzburg
            Julian

            1. Hallo,

              Vielleicht solltest Du doch einmal das ganze wie von Sven vorgeschlagen als statische Seite erstellen, dem Validator zum zerlegen geben, dann nochmal selbst im Quellcode nach Ungereimtheiten suchen, und _erst_dann_ mit PHP verbinden und das dortige Ergebnis mit dem passenden statischen Code vergleichen.

              Grüße aus Würzburg
              Julian

              Hallo

              hatte ich wie schon beschrieben gemacht

      2. Moin!

        Will erst einmal das Problem mit der Abfrage gelöst haben
        brauche Sie wegen
        sichtbar
        nicht sichtbar

        Hm, ich frage mich, ob du nicht ein grundsätzliches Problem mit deinem HTML und Javascript hast.

        Deinen Versuchen, das Problem darzulegen entnehme ich, daß du ein Menü hast, welches aus Layern besteht.

        Weiterhin sehe ich, daß deine Menüpunkte aus einer Datenbank kommen.

        Du willst nun augenscheinlich einige Menüpunkte anzeigen, während andere versteckt sein sollen - und das gleich wenn die Seite geladen wird.

        Funktioniert aber nicht mit dem Code, den du da ausgibst. Die Funktion MM_Showhidelayers() ist dazu da, auf Klick oder Mouseover einen Layer einzublenden oder zu verstecken. Wenn der Layer von Beginn an unsichtbar sein soll, mußt du das mit CSS lösen, ersatzweise auch onload mit Javascript.

        Das nur als kleinen Hinweis. Im übrigen sieht dein Code sehr umständlich aus. Die Empfehlung, einfach die Menü-ID aus der Datenbank ohne IFs in den Link zu schreiben erscheint mir durchaus nachdenkens- und umsetzungswert.

        - Sven Rautenberg

        1. Hallo

          Deinen Versuchen, das Problem darzulegen entnehme ich, daß du ein Menü hast, welches aus Layern besteht.

          Das erste menü wird per DB und CSS ausgelesen

          Du willst nun augenscheinlich einige Menüpunkte anzeigen, während andere versteckt sein sollen - und das gleich wenn die Seite geladen wird.

          Die weiteren SUB-MENÜ sind Layer die versteckt sind und durch MouseOver wie angegeben Sichtbar werden.

          Funktioniert aber nicht mit dem Code, den du da ausgibst. Die Funktion MM_Showhidelayers() ist dazu da, auf Klick oder Mouseover einen Layer einzublenden oder zu verstecken. Wenn der Layer von Beginn an unsichtbar sein soll, mußt du das mit CSS lösen, ersatzweise auch onload mit Javascript.

          Es funzt durch MouseOver nicht durch ein Klick wenn ich bei der IF-Abfrage mich nur auf eine menuid beschränke.

          if($menuid == 2)
          {
          //----- Sichtbar -----
          echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','show')">".$menu."</a>";
          }
          else
          {
          //----- nicht Sichtbar -----
          echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','hide')">".$menu."</a>";
          }

          So wie ich auch die anderen menuid abfragen will geht es nicht mehr
          wie schon geschildert

          Das nur als kleinen Hinweis. Im übrigen sieht dein Code sehr umständlich aus. Die Empfehlung, einfach die Menü-ID aus der Datenbank ohne IFs in den Link zu schreiben erscheint mir durchaus nachdenkens- und umsetzungswert.

          Wenn das mit dem Problem gelöst ist dann komme ich auch darauf zurück, danke, aber nach dem viel hin und her ist dies für mich zum Verstehen das einfachste

          Danke
          Andreas

          1. Moin nochmal!

            Funktioniert aber nicht mit dem Code, den du da ausgibst. Die Funktion MM_Showhidelayers() ist dazu da, auf Klick oder Mouseover einen Layer einzublenden oder zu verstecken. Wenn der Layer von Beginn an unsichtbar sein soll, mußt du das mit CSS lösen, ersatzweise auch onload mit Javascript.

            Es funzt durch MouseOver nicht durch ein Klick wenn ich bei der IF-Abfrage mich nur auf eine menuid beschränke.

            if($menuid == 2)
            {
            //----- Sichtbar -----
            echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','show')">".$menu."</a>";
            }
            else
            {
            //----- nicht Sichtbar -----
            echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','hide')">".$menu."</a>";
            }

            So wie ich auch die anderen menuid abfragen will geht es nicht mehr
            wie schon geschildert

            Der Code, den du produzierst, macht folgendes:

            Die Seite wird geladen, alle Layer sind entsprechend den Vorgaben des CSS sichtbar oder unsichtbar.

            Du hast Links, welche auf das Überfahren der Maus reagieren.

            Die einen Links sind in der Lage, ihren zugeordneten Layer anzuzeigen. Aber _nur_ das. Der Layer wird niemals mehr verschwinden, weil der passende Mouseout-Code fehlt.

            Die anderen Links sind in der Lage, ihren zugeordneten Layer zu verstecken, aber nicht, ihn anzuzeigen. Der Layer wird nur schwerlich wieder sichtbar zu machen sein.

            Wenn ich mir überlege, daß es sich um ein Menü handelt, dann halte ich es für ungünstig, gewisse Layer nur einzublenden und gewisse andere Layer immer nur auszublenden. Da kann irgendwas nicht funktionieren.

            Mein Tipp: Mach's so wie die Profis - bastel erstmal nur eine HTML+Javascript-Seite und baue dann mit PHP gewisse Datenbankinformationen nachträglich ein. Ich habe so das Gefühl, dir ist noch nicht ganz klar, was du da _wirklich_ produzierst, welchen Einfluß PHP auf die Seite und deren Funktion hat und was Javascript da regelt.

            Wenn das mit dem Problem gelöst ist dann komme ich auch darauf zurück, danke, aber nach dem viel hin und her ist dies für mich zum Verstehen das einfachste

            Ich denke, dein Problem ist ein anderes, als du bisher glaubst. Aber du mußt natürlich selbst wissen, wieviel Energie du da reinstecken willst. :)

            Um festzustellen, welchen Wert gewisse Variablen haben, die nicht das tun, was sie sollen, empfiehlt es sich, diese Variablen mit echo bei jedem Programmschritt auszugeben - wahlweise sogar mit der Funktion var_dump() (macht es leichter, komplexe Variablen wie Arrays zu sichten -> http://www.php.net/manual/de/function.var-dump.php).

            Dann mußt du nur noch in den Quelltext im Browser gucken, sofern er diese Angabe nicht schon gerendert anzeigt, und weißt, was PHP auf dem Weg so macht.

            - Sven Rautenberg

            1. Hallo

              Du hast Links, welche auf das Überfahren der Maus reagieren.

              RICHTIG

              Die einen Links sind in der Lage, ihren zugeordneten Layer anzuzeigen. Aber _nur_ das. Der Layer wird niemals mehr verschwinden, weil der passende Mouseout-Code fehlt.

              KLAR GEHT DOCH

              wenn das ganze ohne Datenbak mit dem gleichen JS, ohne Problem
              Ist sogar im Einsatz
              Mit DB und nur einer IF Zuweisung auch ohne Problem nur bei mehreren!!!

              Die anderen Links sind in der Lage, ihren zugeordneten Layer zu verstecken, aber nicht, ihn anzuzeigen. Der Layer wird nur schwerlich wieder sichtbar zu machen sein.

              DAS EIN MEIN PROBLEM

              Mein Tipp: Mach's so wie die Profis - bastel erstmal nur eine

              BIN KEIN PROFI, WENIG AHNUNG VON JS.
              HABE ES SCHON MAL OHNE PHP GEBASTELT und WAS AUCH FUNZT
              dann mit PHP ohne DB funzt auch
              mit DB mit nur EINER BEDINGUNG funzt eine Menüpunkt den ich Halt abfrage

              Um festzustellen, welchen Wert gewisse Variablen haben, die nicht das tun, was sie sollen, empfiehlt es sich, diese Variablen mit echo bei jedem Programmschritt auszugeben - wahlweise sogar mit der

              Sowas ähnlichen habe ich woanders schon erhalten und alle Variablen sind da.

              Wie gesagt  wenn ich die IF-Abfrage auf eine Anweisung pro menuid durchspiele, erhalte ich auch immer das passende SUBMENU/LAYER/EBENE

              nur wenn ich alle mit z.B. if../elseif...elseif..else aufbaue geht das nicht

              Andreas

              1. Yo!

                Wir kommen dem Problem näher, wie ich finde.

                Die einen Links sind in der Lage, ihren zugeordneten Layer anzuzeigen. Aber _nur_ das. Der Layer wird niemals mehr verschwinden, weil der passende Mouseout-Code fehlt.
                KLAR GEHT DOCH

                Wenn du dich auf den "Layer2" beziehst, könntest du recht haben - allerdings nur, weil du Glück hast. :)

                wenn das ganze ohne Datenbak mit dem gleichen JS, ohne Problem
                Ist sogar im Einsatz
                Mit DB und nur einer IF Zuweisung auch ohne Problem nur bei mehreren!!!

                Schön, wenn es grundsätzlich funktioniert. Poste bitte mal einen Link zu diesem funktionierenden Menü, bzw. gib genauso auszugsweise hier den HTML-Kern des Menüs an. Die Javascript-Funktionen sind dabei eher uninteressant - ich nehme mal an, sie sind in der Lage, Layer anzuzeigen und zu verstecken. :)

                Die anderen Links sind in der Lage, ihren zugeordneten Layer zu verstecken, aber nicht, ihn anzuzeigen. Der Layer wird nur schwerlich wieder sichtbar zu machen sein.

                DAS EIN MEIN PROBLEM

                Mein Tipp: Mach's so wie die Profis - bastel erstmal nur eine

                BIN KEIN PROFI, WENIG AHNUNG VON JS.

                1. Reg dich ab und schrei nicht so.
                2. Was du nicht kannst hindert dich aber nicht, es zu lernen.
                3. Dein Problem ist kein Javascript-Problem, sondern ein Verständnisproblem insgesamt. Das kann man aber beheben. :)

                HABE ES SCHON MAL OHNE PHP GEBASTELT und WAS AUCH FUNZT

                Darauf mußt du aufbauen.

                dann mit PHP ohne DB funzt auch

                Interessant. Was macht PHP da anders als bei der ersten Version?

                mit DB mit nur EINER BEDINGUNG funzt eine Menüpunkt den ich Halt abfrage

                Auch schön. Du bist vermutlich nur wenige Kilobyte von der Lösung entfernt.

                Wie gesagt  wenn ich die IF-Abfrage auf eine Anweisung pro menuid durchspiele, erhalte ich auch immer das passende SUBMENU/LAYER/EBENE

                nur wenn ich alle mit z.B. if../elseif...elseif..else aufbaue geht das nicht

                Ich benötige, wie oben erwähnt, Quelltext, um deine HTML-Menüstruktur zu erkennen. Du hast irgendeinen Denkfehler drin, den ich ohne mehr Info kaum korrigieren kann.

                Vorzugsweise den Quelltext des funktionierenden Menüs vollkommen ohne PHP, und gerne auch die Version mit PHP ohne DB drin. Der Vollständigkeit halber auch noch die Variante mit der einen IF-Abfrage - ich könnte mir das im Forum zusammensuchen, aber du hast das doch direkt im Zugriff bei dir, geht so ganz sicher schneller.

                Dein Vorhaben ist nicht unmöglich. Und anscheinend auch schon recht weit vorangekommen. Es mangelt einfach nur am letzten Kick in die richtige Richtung. :)

                - Sven Rautenberg

                1. Hallo

                  Wir kommen dem Problem näher, wie ich finde.

                  Hoffentlich

                  Schön, wenn es grundsätzlich funktioniert. Poste bitte mal einen Link zu diesem funktionierenden

                  http://www.markenprofi.de

                  1. Reg dich ab und schrei nicht so.
                  2. Was du nicht kannst hindert dich aber nicht, es zu lernen.

                  Ich habe mich gar nicht aufgeregt.

                  1. Dein Problem ist kein Javascript-Problem, sondern ein Verständnisproblem insgesamt. Das kann man aber beheben. :)

                  Deswegen habe ich soviel reingeschrien das dann mein Verständnis vielecht auf die Sprünge hilft, das man das mal wie ich es versuche zu schildern anders angeht mit einer anderen Möglichkeit.

                  Ich sehe nur bei der Abfrage das problem weil es sonst ja so einigermaßen funzt

                  Vorzugsweise den Quelltext des funktionierenden Menüs vollkommen ohne PHP, und gerne auch die Version mit PHP ohne DB drin. Der Vollständigkeit halber auch noch die Variante mit der einen IF-Abfrage - ich könnte mir das im Forum zusammensuchen, aber du hast das doch direkt im Zugriff bei dir, geht so ganz sicher schneller.

                  Deswegen habe ich den DB-Weg gewählt der ist nicht so aufbrausend vom Quellcode der HTML Code umfasst schon 300 Zeilen, die will ich hier nicht abbilden da blickt man gar nicht mehr durch

                  Dein Vorhaben ist nicht unmöglich. Und anscheinend auch schon recht weit vorangekommen. Es mangelt einfach nur am letzten Kick in die richtige Richtung. :)

                  Das Gefühl habe ich auch bis zu blöden Abfrage

                  Jetz habe ich Schritt für Schritt aufgebuat und bleibe wieder an der Abfrage hängen

                  Er nimmt immer nur den letzten Wert der Anweisung?
                  Soviel kann doch gar nicht am Gesamtscript nicht stimmen?

                  Danke

                  1. Hallo Andreas,

                    geht es also um diese konkrete Seite? Ich würde (und tue es) erst mal wieder den Quelltext auf korrektheit untersuchen.

                    • Ein <body> in der in der zwanzigsten Zeile von unten kann sicher nicht passen, zwei im ganzen Dokument schon gar nicht.
                    • HTML-Dokumente ohne abschließendes </html> gibt's auch nicht.

                    Kann mir auch durchaus vorstellen, dass sich da irgendein Programm etwas verschluckt.

                    Grüße aus Würzburg
                    Julian

                    1. Hallo,

                      Danke für die Geduld

                      geht es also um diese konkrete Seite?

                      Da sind paar kleine Fehler drin die ich wenn ich Luft habe korrigiere, die tun aber nicht weh.

                      So das ist ein Menü was per include eingebettet ist.
                      Es ist eigentlichn reiner HTML Code mit der Funktion von Dreamweaver für die Ebenen/Layer und ein paar Variablenübergaben

                      Das ganze lasse ich jetzt in einen anderen Projekt per DB auslesen
                      und stehe jetzt hier mit meinem Problem was Du jetzt schon kennst

                      Was brauchst DU jetzt?

                  2. Yo!

                    http://www.markenprofi.de

                    Hm, da sehe ich nur viel Dreamweaver-Müllcode. Daß man als Nichtprofi da nicht durchblickt, ist irgendwie klar.

                    Deswegen habe ich den DB-Weg gewählt der ist nicht so aufbrausend vom Quellcode der HTML Code umfasst schon 300 Zeilen, die will ich hier nicht abbilden da blickt man gar nicht mehr durch

                    Tja, ohne Quellcodeauszug kann ich nicht helfen. Wenn allerdings, wie zu befürchten, da so eine Dreamweaver-Kacke zu erwarten ist, dann will ich auch nicht wirklich helfen. Ich stehe da auf dem sehr egoistischen Standpunkt: Wer Dreamweaver wählt, muß die Konsequenzen tragen, oder viel Ahnung haben.

                    Jetz habe ich Schritt für Schritt aufgebuat und bleibe wieder an der Abfrage hängen

                    Er nimmt immer nur den letzten Wert der Anweisung?
                    Soviel kann doch gar nicht am Gesamtscript nicht stimmen?

                    Wie gesagt: Die paar Zeilen gewünschten HTML-Code wirst du doch wohl noch rauskopieren können. Das kann man dann prima mit dem entstehenden Code vergleichen, den PHP erzeugt, und so den Fehler finden.

                    - Sven Rautenberg

                    1. Yo!

                      http://www.markenprofi.de

                      Hm, da sehe ich nur viel Dreamweaver-Müllcode. Daß man als Nichtprofi da nicht durchblickt, ist irgendwie klar.

                      Soviel ist da gar nicht so ca 65 Zeilen von 400 Zeilen

                      »»Wie gesagt: Die paar Zeilen gewünschten HTML-Code wirst du doch wohl noch rauskopieren können

                      Ich sehe da keinen Sinn drin aber bitte:

                      Hier der Code für das Menü von Markenprofi.de, Links habe ich rausgeschmissen damit es nicht zu voll wird

                      <div id="Layer1" style="position:absolute; left:133px; top:115px; width:180px; height:141px; z-index:1; visibility: hidden">   <table width="180" border="1" cellspacing="0" cellpadding="3" bgcolor="#FFFFFF" align="center" hspace="0" vspace="0" bordercolordark="#0069B3" bordercolor="#0069B3">     <tr>       <td><font size="2"><a href="#">Fachhändler</a></font></td>     </tr>     <tr>       <td><font size="2"><a href="#">Für Sie ausgesucht</a></font></td>     </tr>     <tr>       <td height="14"><font size="2"><a href="#">Dienstleistungen</a></font></td>     </tr>     <tr>       <td height="14"><font size="2"><a href="#">Anfrage an den Spezialisten</a></font></td>     </tr>     <tr>       <td height="14"><font size="2"><a href="#">Forum</a></font></td>     </tr>     <tr>       <td height="14"><font size="2"><a href="#" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')">Lexikon</a></font></td>     </tr>   </table> </div> <div id="Layer2" style="position:absolute; left:259px; top:115px; width:140px; height:101px; z-index:2; visibility: hidden">   <table width="140" border="1" cellspacing="0" cellpadding="3" bgcolor="#FFFFFF" align="center" hspace="0" vspace="0" bordercolordark="#0069B3" bordercolor="#0069B3"> <tr> <td><font size="2"><a href="#">Newsletter</a></font></td> </tr> <tr> <td><font size="2"><a href="#">Über Uns</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Buchtipps</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">TV-Tipps</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Stellenbörse</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Neuheiten</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Testergebnisse</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')">Ratgeber</a></font></td> </tr> </table> </div> <div id="Layer3" style="position:absolute; left:385px; top:115px; width:150px; height:95px; z-index:3; visibility: hidden">   <table width="150" border="1" cellspacing="0" cellpadding="3" bgcolor="#FFFFFF" align="center" hspace="0" vspace="0" bordercolordark="#0069B3" bordercolor="#0069B3"> <tr> <td><font size="2"><a href="#">E-Grüsse</a></font></td> </tr> <tr> <td><font size="2"><a href="#">Rezepte</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Top Ten</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Kino-News</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Bieten & Suchen</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#">Messen</a></font></td> </tr> <tr> <td height="14"><font size="2"><a href="#"  onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','Layer3')">Trends</a></font></td> </tr> </table> </div> <table width="100%" border="0" cellspacing="0" cellpadding="0" height="114">  <tr background="#bilder/logo_blank.gif">

                      <td background="#bilder/logo_blank.gif" bgcolor="#0069B3">       <table border="0" cellspacing="0" cellpadding="0" width="760">         <tr>           <td><a href="#" target="_top" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_01.gif" width="219" height="90" border="0" alt="Home" name="Image1"></a></td>           <td><a href="#" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_blank.gif" width="100" height="90" border="0"></a></td>           <td><a href="#" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_blank.gif" width="100" height="90" border="0"></a></td>           <td><a href="#" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_blank1.gif" width="113" height="90" border="0"></a></td>           <td><a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_kontakt.gif" width="38" height="90" border="0" alt="Kontakt"></a></td>           <td><a href="javascript:erstbesucherinfo();" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_info.gif" width="38" height="90" border="0" alt="Erstbesucherinfo"></a></td>           <td><a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_hilfe.gif" width="38" height="90" border="0" alt="Sitemap"></a></td>           <td><a href="#" target="_top" onMouseOut="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_home.gif" width="38" height="90" border="0" alt="Home"></a></td>           <td><a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_presse.gif" width="38" height="90" border="0" alt="Pressebereich"></a></td>           <td><a href="#s" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')"><img src="#bilder/logo_haendler.gif" width="38" height="90" border="0" alt="Haendlerbereich"></a></td>         </tr>       </table>     </td>   </tr>   <tr background="#bilder/logo_blank.gif">     <td background="#bilder/logo_blank.gif" bgcolor="#0069B3">       <table width="760" border="0" cellpadding="0" cellspacing="0">         <tr>           <td><img src="#bilder/menue_nav_blank.gif" width="6" height="19" border="0"></td>           <td>      <?      if($mw == "aktuelles")      {      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide');MM_swapImage('Image2','','#bilder/nav_aktuelles2.gif',1)"><img src="#bilder/nav_aktuelles2.gif" width="127" height="19" border="0" alt="Aktuelles" name="Image2"></a>      <?      }else{      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide');MM_swapImage('Image2','','#bilder/nav_aktuelles2.gif',1)"><img src="#bilder/nav_aktuelles1.gif" width="127" height="19" border="0" alt="Aktuelles" name="Image2"></a>      <?      }      ?>      </td>      <td>      <?      if($mw == "service")      {      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','#bilder/nav_service2.gif',1);MM_showHideLayers('Layer1','','show','Layer2','','hide','Layer3','','hide')"><img src="#bilder/nav_service2.gif" width="127" height="19" border="0" alt="Service" name="Image3"></a>           <?      }else{      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','#bilder/nav_service2.gif',1);MM_showHideLayers('Layer1','','show','Layer2','','hide','Layer3','','hide')"><img src="#bilder/nav_service1.gif" width="127" height="19" border="0" alt="Service" name="Image3"></a>      <?      }      ?>      </td>      <td>      <?      if($mw == "info")      {      ?>      <a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','show','Layer3','','hide');MM_swapImage('Image4','','#bilder/nav_info2.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_info2.gif" width="126" height="19" border="0" alt="Infos" name="Image4"></a>           <?      }else{      ?>      <a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','show','Layer3','','hide');MM_swapImage('Image4','','#bilder/nav_info2.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_info1.gif" width="126" height="19" border="0" alt="Infos" name="Image4"></a>      <?      }      ?>      </td>      <td>      <?      if($mw == "freizeit")      {      ?>      <a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','show');MM_swapImage('Image5','','#bilder/nav_freizeit2.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_freizeit2.gif" width="126" height="19" border="0" alt="Freizeit" name="Image5"></a>           <?      }else{      ?>      <a href="#" onMouseOver="MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','show');MM_swapImage('Image5','','#bilder/nav_freizeit2.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_freizeit1.gif" width="126" height="19" border="0" alt="Freizeit" name="Image5"></a>      <?      }      ?>      </td>      <td>      <?      if($mw == "lustauf")      {      ?>      <a href="#" onMouseOver="MM_swapImage('Image6','','#bilder/nav_lustauf2.gif',0);MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_lustauf2.gif" width="127" height="19" border="0" alt="Produktinnovationen" name="Image6"></a>           <?      }else{      ?>      <a href="#" onMouseOver="MM_swapImage('Image6','','#bilder/nav_lustauf2.gif',0);MM_showHideLayers('Layer1','','hide','Layer2','','hide','Layer3','','hide')" onMouseOut="MM_swapImgRestore()"><img src="#bilder/nav_lustauf1.gif" width="127" height="19" border="0" alt="Produktinnovationen" name="Image6"></a>      <?      }      ?>      </td>      <td>      <?      if($menuedownload == "download")      {      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image7','','#bilder/nav_download2.gif',1)"><img src="#bilder/nav_download2.gif" width="127" height="19" border="0" alt="Download" name="Image7"></a>      <?      }else{      ?>      <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image7','','#bilder/nav_download2.gif',1)"><img src="#bilder/nav_download1.gif" width="127" height="19" border="0" alt="Download" name="Image7"></a>      <?      }      ?>      </td>         </tr>       </table>     </td>   </tr> </table>

                      1. Hallo,

                        mal ganz doof gefragt: Hast du dir mal in der Whileschleife zusätzlich zu den gewünschten Ausgaben die Werte von menuid mit rausschreiben lassen? Damit wäre zumindest klar, welche Werte geliefert sind, und wo bzw. ggf. auch warum die Abfragen nicht anspringen.

                        <?
                        while($row = mysql_fetch_array($menue_select))
                        {
                        echo "<!--$menuid-->";
                        if($menuid == 1)
                        {
                        //----- Sichtbar -----
                        echo "<a href="#?menuid=".$menuid."" onMouseOver="MM_showHideLayers('Layer1','','show')">".$menu."</a>";
                        }
                        (...)
                        }
                        ?>

                        Grüße aus Würzburg
                        Julian

                        1. Hallo,

                          mal ganz doof gefragt: Hast du dir mal in der Whileschleife zusätzlich zu den gewünschten Ausgaben die Werte von menuid mit rausschreiben lassen?

                          Ja habe ich, ich lasse diese auch per Link mit ausgeben und diese sind auch dann bei
                          Menü1 = 1
                          Menü2 = 2
                          Menü3 = 3
                          Menü4 = 4
                          Menü5 = 5
                          Menü6 = 6

                          <a  href="#?menuid=".$menuid."...

                          1. Hallo andreas,

                            ok, ich werd's mir vielleicht heut abend nochma anschauen und probieren. Hab leider grad keine Testumgebung hier.

                            Grüße aus Würzburg
                            Julian

                          2. Hallo,

                            also die Abfragen schein wunderbar zu funktionieren. Habe das ganze mal wie folgt nachgebildet:

                            $row = array ( "0","1","2","3" );
                            $i = 0;

                            while($row && $i<4)
                            {
                            $menuid = $row[$i];

                            if($menuid == 1)
                            {
                            (...)

                            Kann man mal Deine SQL-Abfrage samt Umwandlung des Hashs in die Variablen sehen? Mit scheint irgenwie doch, als wäre da der Wurm irgendwo drin. Die Abfragen sind ja syntaktisch und logisch korrekt und laufen.

                            Grüße aus Würzburg
                            Julian

                            1. Hallo,

                              bin jetzt alleine weiter gekommen habe die Abfrage versetzt und schon klappt mein erster Schritt

                              <table cellspacing="0" cellpadding="0" border="1">
                              <tr>
                              <td class="blank<? echo $menucount;?>"> </td>
                              <?
                              $menue_select = mysql_query("select * from wsc_menu order by menuid");

                              while($zeile = mysql_fetch_array($menue_select))
                              {
                              echo "<td class="men"><a href="#?menue_id=".$zeile["menuid"]."" class="men" onMouseOver="MM_showHideLayers(";
                              if($zeile["menuid"]== 2)
                              {
                              $layer2 = 2;
                              echo "'Layer2','','show','Layer3','','hide','Layer4','','hide','Layer5','','hide'";
                              }
                              elseif($zeile["menuid"]== 3)
                              {
                              $layer3 = 3;
                              echo "'Layer2','','hide','Layer3','','show','Layer4','','hide','Layer5','','hide'";
                              }
                              elseif($zeile["menuid"]== 4)
                              {
                              $layer4 = 4;
                              echo "'Layer2','','hide','Layer3','','hide','Layer4','','show','Layer5','','hide'";
                              }
                              elseif($zeile["menuid"]== 5)
                              {
                              $layer5 = 5;
                              echo "'Layer2','','hide','Layer3','','hide','Layer4','','hide','Layer5','','show'";
                              }
                              else
                              {
                              echo "'Layer2','','hide','Layer3','','hide','Layer4','','hide','Layer5','','hide'";
                              }
                              echo ")">".$zeile["menu"]."</a></td>";
                              }
                              ?>
                              </tr>
                              </table>

                              Jetzt habe ich ein neues Problem wobei ich nicht weiß ob Du mir da auch helfen kannst

                              Wenn ich jetzt mit der Maus über einen Link gehe, erhalte ich den dazugehörigen Layer.

                              Problem:
                              jetzt muß für jeden Menüpunkt einen Layer aufbauen

                              <div id="Layer2" style="position:absolute; visibility: hidden">
                              <table width="130" border="1">
                               <tr>
                                <td><a href="#">2</a></td>
                               </tr>
                              </table>
                              </div>

                              <div id="Layer3" style="position:absolute; visibility: hidden">
                              <table width="130" border="1">
                               <tr>
                                <td><a href="#">2</a></td>
                               </tr>
                              </table>
                              </div>

                              das hätte ich auch gerne vereinfacht so das sich nur die Layernr ändert, dewegen lasse ich überall oben die $layer2-5 definieren

                              irgendwie so, da fehlt mir noch das richtige drumherum:

                              <div id="Layer<?$layer;?>" style="position:absolute; visibility: hidden">
                              <table width="130" border="1">
                               <tr>
                                <td><a href="#">2</a></td>
                               </tr>
                              </table>
                              </div>

                              Hast Du eine Idee?