kostenloser Webspace werbefrei: lima-city


Aufklappmenü aufgeklappt lassen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    maggie2

    maggie2 hat kostenlosen Webspace.

    Hallo,
    Beim Auklappmenü sollen die Unterpunkte sichtbar bleiben (ausgeklappt) wenn ein Unterpunkt angeklickt wurde.
    Das Menü (navi.php) wird per 'include' in jede Datei, die über die Menüpunkte verlinkt sind, eingebunden.
    Stand der PHP: http://www.formfalt.net/testnavi
    <dl class="menu">
      <dt><?php echo '<a href="leer.php?x=1">Menü 1</a>';?> 
      </dt>
       
    <?php
        if(intval($_GET["x"]) == 1)
        {
          echo '<dd>
          <a href="blau.php?x=1">menue 1a</a>
          <a href="magenta.php?x=1">menue 1b</a>
          </dd>';
    	 }	
    ?>  
    </dl>
    <dl class="menu">
    <dt>
    <?php
      echo '<a href="leer.php?x=2">Menü 2</a>';
    ?>   
    </dt>
    <?php
        if(intval($_GET["x"]) == 2)
        {
          echo '<dd>
                <a href="magenta.php?x=2">menue 2a</a>
                </dd>';
        }
    ?>  
    </dl>

    Ist die gewünschte Menüstellung mit 'session_id' zu lösen?
    Danke für Hilfe.
    Gruß
    Maggie
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo!

    Es funktioniert mit einer SESSION!

    Hier der neue Code:

    <?php 
    
    SESSION_start();
    
    if(intval($_GET["x"]) == 1)
    {
    $_SESSION['menu1'] = 'true';
    }
    
    if(intval($_GET["x"]) == 2)
    {
    $_SESSION['menu2'] = 'true';
    }
    
    ?>
    
    <dl class="menu">
      <dt><?php echo '<a href="?x=1">Menü 1</a>';?> 
      </dt>
       
    <?php
        if(intval($_GET["x"]) == 1 or $_SESSION['menu1'] == 'true')
        {
          echo '<dd>
          <a href="?x=1">menue 1a</a>
          <a href="?x=1">menue 1b</a>
          </dd>';
    	 }	
    ?>  
    </dl>
    <dl class="menu">
    <dt>
    <?php
      echo '<a href="?x=2">Menü 2</a>';
    ?>   
    </dt>
    <?php
        if(intval($_GET["x"]) == 2  or $_SESSION['menu2'] == 'true')
        {
          echo '<dd>
                <a href="?x=2">menue 2a</a>
                </dd>';
        }
    ?>  
    </dl>


    Wenn du noch willst das man sie einklappen kann, dann muss du einstellen, dass die Variablen != true sind ;-)

    EDIT: HAbe ich einmal schnell gemacht ;-)

    <?php 
    
    SESSION_start();
    
    if(intval($_GET["x"]) == 1)
    {
    $_SESSION['menu1'] = 'true';
    } elseif(intval($_GET["x"]) == -1) {
    $_SESSION['menu1'] = 'false';
    }
    
    
    if(intval($_GET["x"]) == 2)
    {
    $_SESSION['menu2'] = 'true';
    } elseif(intval($_GET["x"]) == -2) {
    $_SESSION['menu2'] = 'false';
    }
    
    ?>
    
    <dl class="menu">
      <dt><?php 
      if($_SESSION['menu1'] != 'true') {
      echo '<a href="?x=1">Menü 1</a>';
      } else {
      echo' <a href="?x=-1">Menü 1</a>';
     } ?>
      </dt>
       
    <?php
        if($_SESSION['menu1'] == 'true')
        {
          echo '<dd>
          <a href="?x=1">menue 1a</a>
          <a href="?x=1">menue 1b</a>
          </dd>';
    	 }	
    ?>  
    </dl>
    <dl class="menu">
    <dt>
    <?php
    if($_SESSION['menu2'] != 'true') {
      echo '<a href="?x=2">Menü 2</a>';
      } else {
      echo' <a href="?x=-2">Menü 2</a>';
     }
    ?>   
    </dt>
    <?php
        if($_SESSION['menu2'] == 'true')
        {
          echo '<dd>
                <a href="?x=2">menue 2a</a>
                </dd>';
        }
    ?>  
    </dl>


    Gruß
    illuxio

    Beitrag zuletzt geändert: 22.9.2009 23:37:59 von illuxio
  4. Autor dieses Themas

    maggie2

    maggie2 hat kostenlosen Webspace.

    Hallo illuxio,
    herzlichen Dank für die schon fertige Ausführung des Scripts.

    Ich habe
    <?php SESSION_start();?>

    ganz oben in der 'navi.php' (nach dem 'error_reporting') eingestellt
    und im body dann
    <?php 
    if(intval($_GET["x"]) == 1)
    {
    $_SESSION['menu1'] = 'true';
    } elseif(intval($_GET["x"]) == -1) {
    $_SESSION['menu1'] = 'false';
    }... usw.


    Dieser Fehler wird nun angezeigt:
    Cannot send session cookie - headers already sent by (output started at /var/www/web361/html/formfalt/navitest/index.php:10)
    Was bedeutet die ':10' ?

    Gruß
    Maggie
  5. Die "10" ist die Linie wo der Fehler aufgetreten ist.
    Das Output problem kommt auch nur dann, wenn du, bevor du Sessions oder Cookies verwendest, eine Ausgabe gemacht hast.
    Überprüfe das!
  6. Autor dieses Themas

    maggie2

    maggie2 hat kostenlosen Webspace.

    Hi qap2,
    http://www.formalt.net/navitest
    Die ganze Fehlermeldung lautet:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/web361/html/formfalt/navitest/index.php:10) in /var/www/web361/html/formfalt/navitest/navi.php on line 5

    In Linie 10 steht der
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    Vor der session_start ist keine Ausgabe.
    ?? wodurch es diese Fehlermeldung gibt.

    Gruß
    Maggie
  7. maggie2 schrieb:

    Vor der session_start ist keine Ausgabe.
    ?? wodurch es diese Fehlermeldung gibt.

    Gruß
    Maggie


    Auch kein Leerzeichen? Das würde nämlich ausreichen :)
  8. c****s

    Du hast doch in deinem ersten Post geschrieben, dass die navi.php per include in andere Seiten geladen wird.
    Folglich haben diese Seiten ihre Header schon gesendet und daher kommt der Fehler.
  9. Autor dieses Themas

    maggie2

    maggie2 hat kostenlosen Webspace.

    Hallo!
    Ja, da war eine Leerzeile und richtig ist auch, dass die 'navi.php' in jeder Datei die per Menüpunkt verlinkt ist, per 'include' eingebunden ist.
    Wie kann man dann das Submenü aufgeklappt lassen, wenn es angeklickt wurde?



    Hallo,
    zum Test, habe ich die Untermenüpunkte auf 'navi.php' verlinkt und das 'Aufgeklappt sein' des Menüpunktes erfolgt trotzdem nicht.

    Hat jemand eine Idee wie das Aufklappen noch machbar ist.

    Danke.
    Gruß
    Maggie

    Beitrag zuletzt geändert: 24.9.2009 8:31:51 von maggie2
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!