Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Elemente ein und ausblenden

Einklappen

Neue Werbung 2019

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

  • 199708897
    hat ein Thema erstellt PHP Elemente ein und ausblenden.

    PHP Elemente ein und ausblenden

    Hallo

    Folgendes: Ich möchte Inhalte per JS anzeigen und ausblenden können, wenn ich auf einen Button klicke.

    Der unten angezeigte Code funktioniert prima mit HTML Elemten, aber wie bekomme ich es hin einen php include einzubauen? wenn ich es so mache wie unten blendet er es zwar aus, aber blendet es nicht wieder ein wenn ich auf den button klicke.

    PHP-Code:
    <?php

    echo '<style type="text/css">
    #ersterContainer { display:none; }
    </style>

    <script type="text/javascript">
    function showhide(divid) {
    obj = document.getElementById(divid);
    obj.style.display = obj.style.display == \'block\' ? \'none\' : \'block\';
    }
    </script>'
    ;

    echo 
    '<a href="#" onclick="showhide(\'ersterContainer\');return false;" onclick="showhide(\'zweiterContainer\');return false;">Anzeigen/Verstecken</a>
            <div id="ersterContainer">'
    .include("/http/htdocs/Webseite/php/menue.php").'</div>'?>
    In der includierten PHP-Datei steht natürlich z.B echo '<br>'; ich denk daran liegt es, aber wie kriege ich sowas nun gelöst?

    Kurz gesagt: Ich möchte mein Menü ein und ausblenden können

    Bitte um Rat und Hilfe,

    Danke im Voraus

  • TessaKavanagh
    antwortet
    Zitat von 199708897 Beitrag anzeigen
    hmm wenn ich

    <?php include("/http/htdocs/Webseite/php/header.php"); ?>
    <?php include("/http/htdocs/Webseite/php/menue.php"); ?>
    <?php include("/http/htdocs/Webseite/php/footer.php"); ?>


    den include von menue.php wegnehme, verschwindet das menue, keine fehlanzeige oder sonst was ..

    meine webseite ist schon zu groß ausgebaut, es könnte wochen dauern um alles in div boxen rein zu klatschen
    Keine Fehlanzeige aber gefühlte 1Mio Fehler im HTML? was dann dazu führt das Google dein Suchergebnis nach ganz hinten verfrachtet?

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    hahah du zauberst mir ein lächeln :P

    wozu mir den kopf zerbrechen wenn es POST gibt?

    PHP-Code:
    <?php

    $valid 
    $_POST['arrow'];

    if (
    $valid == "true"){
    echo 
    '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="POST">
    <input type="hidden" name="arrow" value="">'
    ;
    echo 
    '<input type="submit" name="abspeichern" value="Save" /></form>';
    }
    else{
    echo 
    '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="POST">
    <input type="hidden" name="arrow" value="true">'
    ;
    echo 
    '<input type="submit" name="abspeichern" value="Save" /></form>';
    }

    ?>

    <?php include("/http/htdocs/Webseite/php/header.php");?>
    <?php 
    if ($valid == ""){include("/http/htdocs/Webseite/php/menue.php");} ?>
    <?php 
    include("/http/htdocs/Webseite/php/content.php"); ?>
    <?php 
    include("/http/htdocs/Webseite/php/search.php"); ?>
    <?php 
    include("/http/htdocs/Webseite/php/footer.php"); ?>

    Einen Kommentar schreiben:


  • hausl
    antwortet
    den include von menue.php wegnehme, verschwindet das menue
    Ernst jetzt? Wenn ich meinen Kaffee austrinke, ist auch die Tasse leer...

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    hmm wenn ich

    <?php include("/http/htdocs/Webseite/php/header.php"); ?>
    <?php include("/http/htdocs/Webseite/php/menue.php"); ?>
    <?php include("/http/htdocs/Webseite/php/footer.php"); ?>


    den include von menue.php wegnehme, verschwindet das menue, keine fehlanzeige oder sonst was ..

    meine webseite ist schon zu groß ausgebaut, es könnte wochen dauern um alles in div boxen rein zu klatschen

    Einen Kommentar schreiben:


  • TessaKavanagh
    antwortet
    Wenn du ein Layout mit Tabellen umsetzt, dann brauchst du keinen DIV Container, wenn du ein Layout mit DIVs umsetzt dann brauchst du kein Spalte mehr.

    Die Kombination
    Code:
    <div id="Irgendwas"><tr></tr></div>
    ist eigentlich immer unnötig, dann kannst du auch
    Code:
    <tr id="irgendwas"></tr>
    Schreiben

    Oder du nutzt die schönere Variante und verwendest nur das DIV

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Das war es auch was ich hier schon angedeutet habe...

    Ich glaube nicht das dein HTML insgesamt korrekt ist, das zB kann fast nicht korrekt sein ein öffnendes div und danach ein tr td. etc... wo ist table? Vor dem div? etc...
    HTML-Code:
    <div id="ersterContainer"><tr><td class="left">
    ums verständlicher zu erklären: table fängt in header.php und hört in der footer.php auf. das hat den vorteil, das man dazwischen beliebig viele spalten erstellen kann (module als include rein hängen).
    Das wird nichts.. du weißt das du in allen anderen Zeilen dann einen colspan machen musst mit der korrekten Anzahl an Spalten, damit das funktioniert?

    Lass die Tabelle weg, verwende divs stattdessen, die kann man auch "nebeneinander" stellen.

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    fehler gefunden:

    table fängt vor dem div an.

    ums verständlicher zu erklären: table fängt in header.php und hört in der footer.php auf. das hat den vorteil, das man dazwischen beliebig viele spalten erstellen kann (module als include rein hängen).


    wie krieg ich es gelöst bzw. warum hat es was mit table zutun, nur weil es vorher anfängt? :/

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    tatsächlich! ich werde das ganze mal stück für stück abbauen um zu sehen wo genau der fehler liegt!

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Also wenn ich mir deinen Schnipsel oben #5 rauskopiere es um html, head und body ergänze dann funktioniert es. Da muss nochwas im Zusammenhang mit dem restlichen Dokument sein.

    Ich glaube nicht das dein HTML insgesamt korrekt ist, das zB kann fast nicht korrekt sein ein öffnendes div und danach ein tr td. etc... wo ist table? Vor dem div? etc...

    HTML-Code:
    <div id="ersterContainer"><tr><td class="left">
    Egal, wie gesagt, der Schnipsel hier funktioniert im IE und FF:

    HTML-Code:
    <html>
    
    <head>
    <style type="text/css">
      #ersterContainer { display:none; }
    </style>
    
    <script type="text/javascript">
      function showhide(divid) {
        obj = document.getElementById(divid);
        obj.style.display = obj.style.display == 'block' ? 'none' : 'block';
      }
    </script>
    </head>
    
    <body>
    <a href="#" onclick="showhide('ersterContainer');return false;" onclick="showhide('zweiterContainer');return false;">Anzeigen/Verstecken</a>
      <div id="ersterContainer"><tr><td class="left"><div class="main"><div id="nav"><ul id="navwidth"><li>
    <a class="nav" href="/Webseite/index.html">Homepage
    </a>
    </li>
    <li>
    <a class="nav" href="/Webseite/php/admin.php">CMS
    </a>
    </li></li></ul></div></td>  </div>  
    
    </body>
    </html>

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    Zitat von hausl Beitrag anzeigen
    Ja und ist das HTML (inkl. JS) das der Include erzeugt auch valide/korrekt? Lass den gesamten HTML Quelltext der erzeugt wird (mit der Variante mit dem Include) mal prüfen.

    Hier: http://validator.w3.org/ oder eines der gängigen Browser Plugins.



    Nochmal: HTML und Javascript laufen im Browser, da ist PHP schon fertig. Dh der Browser bekommt nie PHP Code zu Gesicht, der Browser bekommt nur das vom Webserver (PHP) feritg erzeugtes HTML und Javascript und das führt er dann aus.

    http://php-de.github.io/jumpto/was-ist-php/

    LG
    Der einzige Fehler: No DOCTYPE found

    und der ist in dieser Datei nicht nötig

    - Ich weiß das php serverseitig und js/html client seitig funktioniert!!

    nur hatte ich jetzt keine lust jedesmal php zu öffnen und zu schließen bei jedem kleinen hml code

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Ja und ist das HTML (inkl. JS) das der Include erzeugt auch valide/korrekt? Lass den gesamten HTML Quelltext der erzeugt wird (mit der Variante mit dem Include) mal prüfen.

    Hier: http://validator.w3.org/ oder eines der gängigen Browser Plugins.

    in der include datei sind auch if anweisungen drin und kommentare! hat das auswirkungen?
    Nochmal: HTML und Javascript laufen im Browser, da ist PHP (Server) schon fertig. Dh der Browser bekommt nie PHP Code zu Gesicht, der Browser bekommt nur das vom Webserver (PHP) feritg erzeugtes HTML und Javascript und das führt er dann aus.

    http://php-de.github.io/jumpto/was-ist-php/

    LG

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    Zitat von hausl Beitrag anzeigen
    Vermutlich falsches JS, oder irgend ein Elementname falsch etc..
    -> Meldungen in Fehlerkonsole im Browser
    wenn ich statt dem include ein echo $test sage funktioniert es! es liegt also an dem include irgendwie

    in der include datei sind auch if anweisungen drin und kommentare! hat das auswirkungen?

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Vermutlich falsches JS, oder irgend ein Elementname falsch etc..
    -> Meldungen in Fehlerkonsole im Browser

    Einen Kommentar schreiben:


  • 199708897
    antwortet
    Zitat von hausl Beitrag anzeigen
    Aha, und was genau funktioniert nicht? Fehlermeldung? error_reporting aktiviert? Schon mal den HTML-QUelltext anzeigen lassen den der Browser bekommt, ob der korrekt ist etc.. etc..
    Keine Fehlermeldung in den logs

    Im Quelltext werden die Menü-Punkte angezeigt! Aber wieso lässt es sich nicht ausblenden bzw. einblenden wenn ich drauf klicke?


    Quellcode:
    PHP-Code:
    <style type="text/css">
      
    #ersterContainer { display:none; }
    </style>

    <
    script type="text/javascript">
      function 
    showhide(divid) {
        
    obj document.getElementById(divid);
        
    obj.style.display obj.style.display == 'block' 'none' 'block';
      }
    </script>

    <a href="#" onclick="showhide('ersterContainer');return false;" onclick="showhide('zweiterContainer');return false;">Anzeigen/Verstecken</a>
      <div id="ersterContainer"><tr><td class="left"><div class="main"><div id="nav"><ul id="navwidth"><li>
    <a class="nav" href="/Webseite/index.html">Homepage
    </a>
    </li>
    <li>
    <a class="nav" href="/Webseite/php/admin.php">CMS
    </a>
    </li></li></ul></div></td>  </div> 

    Einen Kommentar schreiben:

Lädt...
X