Auslesen einer Style-Eigenschaft mittels PHP

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

  • Auslesen einer Style-Eigenschaft mittels PHP

    Hi,

    ich habe ein Problem mit dem Auslesen der style-Eigenschaft display eines <DIV> mittels PHP.

    Hier das DIV:
    PHP-Code:
    <div id="menu1" style="display: <?php echo $menu11?>;">

    . . .

    </div>
    Und zwar kann die Variable $menu11 entweder 'inline' oder 'none' annehmen, was beim Seitenaufruf aus der URL ausgelesen wird.

    Ändert nun ein User das DIV (durch einen Klick darauf wird das DIV entweder sichtbar oder ausgeblendet), soll diese Einstellung über die URL wieder zur nächsten Seite übergeben werden, was dann etwa so aussieht:
    PHP-Code:
    <a href="index.php?page=register&menu1=<?php echo $menu11?>&menu2=<?php echo $menu21?>"
    Meine Frage nun: Wie lese ich mit PHP den Wert des 'display' vom DIV aus?
    Die Variable $menu11 soll dann diesen Wert annehmen, also wieder entweder 'inline' oder 'none'.

    Da die Kombination aus PHP und JavaScript nicht funktionert, weis ich nicht wie ich das anstellen soll.

    In JavaScript lässt sich der Wert ja ziemlich einfach auslesen:
    PHP-Code:
    document.getElementById('menu1').style.display 
    mfg
    manuelme1
    Freude am Fliegen? Dann werde Mitglied bei den PC Pilots, ein Verein für alle Freunde des Fliegens...!
    Informationen unter http://www.pc-pilots.de

  • #2
    wenn ich dich richtig verstanden habe: das geht nicht. php ist sich nicht bewußt, daß es gerade html geparst hat.

    ich weiß nicht genau, was du machen möchtest ....

    willst du auf den übergebenen parameter zugreifen? schau im $_GET.
    willst du alle links dahingehend anpassen, daß sie den veränderten wert weitergeben? dann mußt du alle link per hand (js) durchgehen, die parameter ändern ....

    bitte genauer beschreiben, danke.

    übergib den wert lieber per session, scheint mir passender ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Nein, ich glaub du hast mich falsch verstanden.

      Ich will einfach nur, dass meine Variable (hier: $menu11) die beim verlassen der Seite aktuelle Eigenschaft des 'display' annimmt.
      PHP-Code:
      <div id="menu1" style="display: inline">  # --> hier ist das DIV sichtbar

      # oder

      <div id="menu1" style="display: none">  # --> hier ist das DIV nicht sichtbar 
      wenn das DIV sichtbar ist, soll die Variable dann also so aussehen:
      $menu11='inline';
      sodass dieser Link:
      PHP-Code:
      <a href="index.php?page=register&menu1=<?php echo $menu11?>">
      dann so aussieht:
      PHP-Code:
      <a href="index.php?page=register&menu1=inline"
      damit ein geschlossenes DIV dann auf der nächsten Seite durch auslesen des Parameters in der URL auch wieder geschlossen ist. Sonst müsste es der User ja jedes mal wieder neu schließen.
      Hoffe du kannst mein Prob. jetzt verstehen... Ich drück mich vielleicht manchmal etwas unverständlich aus!

      Ich habs auch einfach mal mit JavaScript versucht, aber ich bekomm das wahrscheinlich einfachste nicht auf die Reihe: etwas an einen Link anzuhängen:
      PHP-Code:
      <a href="index.php?page=register&menu1="+<script language='JavaScript'document.write(document.getElementById('menu1').style.display); </script>+">Hier klicken</a> 
      Der Link sieht dann im Browser folgendermaßen aus:
      PHP-Code:
      index.php?page=register&menu1=<script%20language='JavaScript'>document.write(document.getElementById('menu1').style.display);</script
      Vielleicht kannst du mir ja sagen wie ich das JS richtig an den Link anhänge, damit wäre mein Problem auch schon behoben, halt nicht mit PHP, aber das ist auch nicht so wichtig.

      Danke!
      Freude am Fliegen? Dann werde Mitglied bei den PC Pilots, ein Verein für alle Freunde des Fliegens...!
      Informationen unter http://www.pc-pilots.de

      Kommentar


      • #4
        Hab dich glaube ich auch nicht richtig verstanden.

        Aber ist dir klar, dass PHP serverseitig abläuft. also bevor die Seite im Browser angezeigt wird?

        Kommentar


        • #5
          das kann nicht gehen. entweder du übergibst den wert an php oder du verwendest cookies...

          Kommentar


          • #6
            Original geschrieben von manuelme1
            Ich habs auch einfach mal mit JavaScript versucht, aber ich bekomm das wahrscheinlich einfachste nicht auf die Reihe: etwas an einen Link anzuhängen:
            PHP-Code:
            <a href="index.php?page=register&menu1="+<script language='JavaScript'>
             
            document.write(document.getElementById('menu1').style.display);
             </
            script>+">Hier klicken</a> 
            das ist ja absoluter nonsense.

            du kannst nicht überall einfach <script> reinklatschen, wie's dir passt.

            wenn überhaupt, dann gehe folgendermaßen vor:
            - verschaffe dir eine referenz auf den link. (ob du dabei über document.links gehst oder getElement(s)ByIrgendwas, sei wurscht)
            - ändere dessen href-attribut entsprechend. ja, dazu musst du es ggf. erst mal auseinanderdröseln, und anschließend mit dem geänderten wert für menuX wieder aneinandersetzen.


            da obiger code allerdings vermuten lässt, dass es um dein grundlagenwissen in punkto JS nicht zum besten bestellt ist ... würde ich dir raten, dich erst mal noch ein wenig intensiver mit den grundlagen zu beschäftigen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Direkt dürfte das nicht gehen,

              entweder per JS und $_GET variablen-Anpassung aller Links oder ...

              es wäre jedoch möglich in deinem Link per Javascript ein Cookie zu setzen, dass per PHP ausgelesen werden kann (allerdings nur wenn Cookies aktiviert/zugelassen sind)

              Sonst könnte mann auch durch Link auf eine PHP Seite eine Variable in der Session setzen und die Seite neu laden um das Div mit neue Eigenschaft zu zeigen (ginge z.B auch innerhalb eines IFRAME)

              Ansonsten nur per AJAX (was jedoch sicher etwas übertrieben wäre)

              jedenfalls bedarf das Programmierkenntnisse
              chansel0049
              ----------------------------------------------------
              if you've reached the bottomline - dig further!
              Übersetzer gesucht? http://www.babelport.com

              Kommentar


              • #8
                Mir ist beim einschlafen was eingefallen, was funktionieren könnte, und es hat funktioniert.
                Habs jetzt komplett mit JavaScript gemacht. Ist zwar etwas umständlich, aber es geht:
                PHP-Code:
                <script language="JavaScript">
                function 
                linkwrite(id,site,text) {
                  var 
                begin="<a href='index.php?page=";
                  var 
                vorn="&menu1=";
                  var 
                m1=document.getElementById('menu1').style.display;
                  var 
                m2=document.getElementById('menu2').style.display;
                  var 
                mitte="&menu2=";
                  var 
                schluss="' style='text-decoration: none' id='menu_members_link'><font color='#000000'>&nbsp;&nbsp; &gt;&gt;&nbsp;";
                  
                document.getElementById(id).innerHTML=begin+site+vorn+m1+mitte+m2+schluss+text+"&nbsp;&nbsp;&nbsp; </font></a>";
                }
                </
                script
                Wenn man nun auf das DIV klickt, wird die Funktion aufgerufen und der entsprechende Link aktualisiert.
                Ist halt etwas umständlich, da man das für jeden Link einzeln aufrufen muss:
                PHP-Code:
                <tr style="cursor: hand;" onClick="showmenu('menu1','image1');linkwrite('forgotten','forgotten','Passwort vergessen?');linkwrite('register','register','Registrieren');"
                Wenn man ein großes Menü hat is das wahrscheinlich nicht gerade die effektivste Lösung.

                Wenn trotzdem noch jemand einen anderen Vorschlag hat, der nicht so umständlich ist, wäre es schön wenn er gepostet wird...!

                mfg
                manuelme1
                Freude am Fliegen? Dann werde Mitglied bei den PC Pilots, ein Verein für alle Freunde des Fliegens...!
                Informationen unter http://www.pc-pilots.de

                Kommentar

                Lädt...
                X