Ankündigung

Einklappen
Keine Ankündigung bisher.

Javaskript klappmenü dynamisch mit PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javaskript klappmenü dynamisch mit PHP

    Hi

    Habe eine frage. Ich bin in Php noch etwas ein Anfänger. Ich möchte mithilfe von Php ein vorhandenes klappmenü dynamisch machen. in diesem klappmenü gibt es eine ober- und eine UNterkategorie, welche in eine Mysql datenbakn gespeichert sind. bisher schaffe ich nur die oberkategorien anzeigen zu lassen, die unterkategoriene habe ich aber noch nicht hinbekommen. In meiner datenbank habe ich eine tabelle in der ober und unterkategorie abgespeichert sind. Die oberkategorie hat eine eigene ID und eine parentid welche bei der oberkategorie NULL ist. bei der unterkategorie (hat auch eine eigene ID) ist dann die parentid gleich der zugehörigen oberkategorie. ICh schaffe es zwar auf zwei seiten das ganze dynamisch hinzubekommen, da man dort eine variable mitgeben kann (in dem fall die ID) mit hilfe von der man dann die unterkategorien "rasubekommt". Bei dem Klpaamenü geht das ja nicht da man nur eine seite hat (bzw vllt geht es doch aber ich weis nicht wie man das macht^^). Nun wollte ich fragen ob mir jemand bei meinem problem helfen kann (ich hoffe es steht im richtigen thread).

    Hier ist der KLappmenü code in der Siete (dahinter läuft noch ein JAvaskript und ein CSS skript was aber nicht wichtig sein dürfte)
    Code:
    <td width="153" height="320" rowspan="7"><ul id="MenuBar1" class="MenuBarVertical">
          <li><a href="#">Oberkategorie Test1</a>
            <ul>
                <li><a href="#">untertest1</a></li>
                <li><a href="#">untertest1</a></li>
                <li><a href="#">untertest1</a></li>
                <li><a href="#">untertest1</a></li>
                <li><a href="#">untertest1</a></li>
                <li><a href="#">untertest1</a></li>
              </ul>
          </li>
          <li><a href="#">Oberkategorie Test2</a>
            <ul>
                <li><a href="#">untertest2</a></li>
                <li><a href="#">untertest2</a></li>
                <li><a href="#">untertest2</a></li>
                <li><a href="#">untertest2</a></li>
                <li><a href="#">untertest2</a></li>
              </ul>
          </li> 
        </ul>    </td>
    Bisher habe cih es so Probiert aber so geht es leider nich dann kommt ein Error.
    PHP-Code:
     <?php 
    include 'open.php'

    $query  "SELECT * FROM kategorie WHERE parentid IS NULL"
    $result mysql_query($query); 

    echo 
    "<ul>"
    while(
    $row mysql_fetch_array($result

        echo 
    "<li>[ <a href=\"unterkategorie.php?hauptkat={$row['kategorieid']} \">{$row['name']}</a> ]</li>\n"

        
    $mainCategory $_GET['hauptkat']; 

        if(
    $mainCategory == $row['kategorieid']) 
        { 
            echo 
    "<ul>\n"
            
    $innerQuery "SELECT * FROM kategorie WHERE parentid =" $mainCategory
            
    $innerResult mysql_query($innerQuery); 
            while(
    $innerRow mysql_fetch_array($innerResult)) 
            { 
                echo 
    "<li>[ <a href=\"produkt.php?katego={$row['kategorieid']} \">{$row['name']}</a> ]</li>\n"
            } 
            echo 
    "</ul>\n"
        } 
        echo 
    "</li>\n"

    echo 
    "</ul>";   

    include 
    'closedb.php'
    ?>
    HIer der link zu der seite wo der Fehler code steht.
    http://www.freebee-warez.bplaced.net/menu-test2.php

    Wäre über hilfe sehr erfreut


  • #2
    Fehler:
    PHP-Code:
    while($row mysql_fetch_array($result)
    // ersetzen in
    while($row mysql_fetch_array($result)) 
    Edit: Bist du dir bei den folgenden Zeilen sicher?
    PHP-Code:
    $innerQuery "SELECT * FROM kategorie WHERE parentid =" $mainCategory
         
    $innerResult mysql_query($innerQuery); 
         while(
    $innerRow mysql_fetch_array($innerResult)) 
            { 
            echo 
    "<li>[ <a href=\"produkt.php?katego={$row['kategorieid']} \">{$row['name']}</a> ]</li>\n"
            } 
    Ich glaube du solltest "$row" durch "$innerRow" ersetzen...

    Kommentar


    • #3
      danke für die schnelle antwort. jetzt ist zumindest schonmla der error weg. nur leider bringt er mir keine ergebinsse. also er zeigt gar nix an. (siehe link) ich weis nicht mehr weiter. Stimmt der PHP code so überhaupt?

      Kommentar


      • #4
        Du solltest keine Queries innerhalb von Schleifen absetzen. Das schlägt mächtig auf die Performance und geht auch eleganter.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Du musst wenigstens sagen, wo was erscheinen soll, und wie es nachher auszusehen hat...
          Wo sollen denn die Obermenulinks hin? Sollte das ganze in der linken Spalte deiner Website auftauchen??

          Kommentar


          • #6
            Genau in der link spalte sollte es sein

            Kommentar


            • #7
              Bin deinen ganzen Code mal durchgegangen...
              So sollte er stimmen:
              PHP-Code:
              <?php 
              include ('open.php'); 

              $mainCategory $_GET['hauptkat'];

              $query  "SELECT * FROM kategorie WHERE parentid IS NULL"
              $result mysql_query($query); 

              echo 
              "<ul>"// ul id='' usw ???
              while($row mysql_fetch_array($result)) 
                  { 
                  echo 
              "<li>[ <a href='unterkategorie.php?hauptkat=".$row['kategorieid']."'>".$row['name']."</a> ]</li><br>"

                  if(
              $mainCategory == $row['kategorieid']) 
                      { 
                      echo 
              "<ul>\n"
                      
              $innerQuery "SELECT * FROM kategorie WHERE parentid = '".$mainCategory."'"
                      
              $innerResult mysql_query($innerQuery); 
                      while(
              $innerRow mysql_fetch_array($innerResult)) 
                          { 
                          echo 
              "<li>[ <a href='produkt.php?katego=".$innerRow['kategorieid']."'>".$innerRow['name']."</a> ]</li><br>"
                          } 
                      echo 
              "</ul><br>"
                      } 
                  echo 
              "</li><br>"
                  } 
              echo 
              "</ul>";   

              include (
              'closedb.php'); 
              ?>
              Auch wenn es nicht gerade die feinste Methode ist =)

              Kommentar


              • #8
                danke für deine hilfe. leider geht es immer noch nicht. er zeigt immernoch nichts an. hast du sonst noch eine Idee woran es liegen könnte? vllt gibt er den Code einfach nicht in der richitgen form aus wie er ihn fürs klappmenü braucht. du hast ja in den PHP code noch gefragt ob //ul id='' ist. nur bei dem ersten UL steht ul=id... sonst steht immer vor den unterkategorien nur <ul>. (siehe code des klappmenüs)
                hier noch mla wies jetzt aussieht. freebee-warez

                Edit:

                so da hat nur was an der ausgabe Form nicht gestimmt (die UL s haben nicht gepasst) . aber er zeigt mir nur die Hauptkategorien an. er klappt immer noch nicht die unerkategorien aus.

                Edit2:

                hae mir nochmal den seite quelcode im browswer angeschaut und festgestllet das er kein unterkategorien auflistet sondern direkt mit den haupt kategorien weiter macht. also stimmt irgendwas am PHP code nciht. er kann wohl der oberkategoriie noch kien unterkategorie zuordnen. leider habe ich noch nicht die erfahrung um zu wissen wie sowas geht.

                Kommentar


                • #9
                  Mal eine andere Frage:

                  Willst du beim Klick auf eine Kategorie (die jetzt in der linken Spalte sind) ein Untermenu aufrufen oder sowohl ein Untermenu als auch eine neue Seite aufrufen?

                  Kommentar


                  • #10
                    also eig isses so gedacht das wenn ich auf die oberkategorie mit der maus gehe die unterkategorine ohne klick aufklappen. wenn man auf die oberkategorie im menü klickt soll man auf die seite mit den unterkategorien kommen (so wie es momentan ist). wenn man auf ein unterkategorie im aufgeklapten klappmenü klickt soll man auf die produkte kommen. das einzige was noch nicht geht ist das er mir die unterkategorien aufklappt.

                    Kommentar

                    Lädt...
                    X