Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] div-Element nicht neu laden!

Einklappen

Neue Werbung 2019

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

  • [Erledigt] div-Element nicht neu laden!

    Hallo allerseits!

    Ich arbeite schon länger mit PHP und bin jetzt dazu gekommen mit Joomla zu arbeiten. Dazu erstelle ich mir mein eigenes Template. Jetzt habe ich folgendes Problem: Im Banner-Bereich befindet sich eine animierte gif-Grafik. Doch beim Klicken auf irgendeinen Link wird der div-Tag ja (logischerweise) neu geladen. Dies möchte ich nun unterbinden, da es sonst nur ein "rumgeblinke" gibt. Wie ist sowas möglich? Ich habe gelesen/gehört, dass so etwas nur mit AJAX möglich ist, aber ich weiß nicht, ob das in Verbindung mit Joomla auch möglich ist.

    Um etwas Klarheit zu schaffen:
    Hier ist mein Code der index.php:
    PHP-Code:
    <html>
        <head>
            <jdoc:include type="head" />
            <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
            <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/menue.css" type="text/css" />
        </head>
        <body>
            <div id="head">
                <div id="head_banner"><jdoc:include type="modules" name="banner" style="xhtml" /></div>
                <div id="head_search"><jdoc:include type="modules" name="search" style="xhtml" /></div>
                <div id="head_menu"><jdoc:include type="modules" name="top_menu" style="xhtml" /></div>
            </div>
            <div id="content">
                <div id="content_breadcrumbs"><jdoc:include type="modules" name="breadcrumb" style="xhtml" /></div>
                <div id="content_right"><jdoc:include type="modules" name="right" style="xhtml" /></div>
                <div id="content_left"><jdoc:include type="modules" name="left" style="xhtml" /></div>
                <div id="content_main"><jdoc:include type="component" style="xhtml" /></div>
            </div>
            <div id="foot">
                <div id="foot_cophyright"><jdoc:include type="modules" name="footer" style="xhtml" /></div>
            </div>
        </body>
    </html>
    Die template.css sieht folgendermaßen aus:
    Code:
      html { height: 100%;
      	}
      
      body { font-size: 12px;
        font-family: Helvetica,Arial,sans-serif;
        padding : 0;
    	margin : 0;
        }
    
      #head {
        width: 100%;
        background-image: url(../images/head_bg.png);
        background-repeat: repeat-x;
        background-color: #0000ff;
        }
    
      #content {
        background-color: #ffffff;
        float: left;
        width: 100%;
        }
    
      #foot {
        float: left;
        width: 100%;
        }
    
      #head_menu {
        width: 100%;
        float: left;
        }
    
      #head_search {
        height: 150px;
        float: right;
        }
    
      #head_banner {
        width: 500px;
        height: 150px;
        float: left;
        background-image: url('../images/banner.gif');
        }
    
      #content_right {
        margin: 0pt 0pt 1.1em;
        float: right;
        width: 12em;
        }
    
      #content_main {
        margin: 0pt 12em 1em 16em;
        padding: 0pt 1em;
        }
    
      #content_left {
        margin: 0pt 0pt 1.2em;
        float: left;
        width: 15em;
        }
    
      #foot_cophyright {
        margin: 0pt 0pt 1.1em;
        }
    Ich möchte auch nicht $_GET benutzen, da ich Suchmaschinen-optimierte Links, mod_rewrite und Dateiendungen benutze. $_POST braucht Joomla selbst, da möchte ich nicht stören. Gibt es nicht eine Alternativ-Möglichkeit wie bei Frames ungefähr?

    Auf jedem Fall schon einmal herzlichen Dank! Und danke, dass es überhaupt die Möglichkeit gibt, sich bei Problemen hier zu melden!

  • #2
    AJAX löst dein Problem nicht

    AJAX ist keine Sprache wie PHP und JavaScript, sondern eine Technik, die aus den Sprachen JavaScript und XHTML hervorging. Mit der Ajax-Technologie kannst Du DIV's erstellen oder Inhalte ändern.

    Bei deinem Problem ist es allerdings, dass Du ein DIV unverändert haben möchtest, während der Rest der Seite neu geladen werden müsste. Von daher wird der programmiertechnische Aufwand extrem, da Du mit jedem Link eine ganze Reihe an Scripten abarbeiten müsstest, um den Seiteninhalt neu zu laden, bzw. neu zu generieren, aber halt dieses eine DIV nicht.

    Eine wirklich sinnvolle Lösung fällt mir bzgl. deinem Problem so ohne weiteres nicht ein. Aber vielleicht hat jemand anders eine Idee.

    Kommentar


    • #3
      von allen gehasst aber in deinem fall warscheinlich die einfachste lösung:
      Frames

      Kommentar


      • #4
        Wobei ich garnicht verstehe, warum Frames so verhasst sind. Bei meinem Projekt käme ich ohne sie garnicht aus.

        Kommentar


        • #5
          Frames sind halt nicht die "Feine" Art.

          Kommentar


          • #6
            Sicher? Ich denke dein Projekt würde sich auch ohne Frames machen lassen. Sie sind einfach nicht mehr nötig. Vor allem find ich sie einfach hässlich

            Kommentar


            • #7
              Sie sind einfach nicht mehr nötig. Vor allem find ich sie einfach hässlich.
              Das ist deine persönliche Meinung, aber keine Begründung, warum man auf sie verzichten sollte.

              Frames sind nicht die "Feine" Art
              Was ist denn so verkehrt an Frames? Wenn ich ohne FrameSet arbeite, und mit DIV's und IFrames arbeite, habe ich im IE einen Scrollbalken an der Seite, der nie mehr als 100% anzeigen wird. Das finde ich optisch auch nicht schöner.

              Von daher, was ist an Frames nun wirklich so schlecht? Und der Einwand von Wegen Suchmaschinen gilt hier jetzt nicht. Mein Projekt ist zwar derzeit auch ohne Login mit Frames ausgestattet, das wird sich aber ändern, sobald der Online-Bereich fertig gestellt ist. Dann dürfen auch Suchmaschinen die Offline-Inhalte durchforsten und fleissig in ihre Datenbanken schaufeln.

              Aber im Online-Bereich hat eh kein Bot was zu suchen. Da kommts nur auf die Aufteilung an.

              Kommentar


              • #8
                Nicht schon wieder die Framediskussion. Keine Bookmarks, Session-Handling wird zur Qual, ID-Steuerung über URLs sind nervig zu verteilen und so ziemlich alle Framefeatures kann man auch mit overflow:scroll erreichen.

                Kommentar


                • #9
                  Zum ursprünglichen Problem:
                  Wie bereits erwähnt, findet die Ajax-Technologie dort Anwendung, wo man Inhalte dynamisch in die Seite laden möchte.
                  Ob Du dabei andere ersetzt und/oder diese einfach hinzufügst, entscheidest Du.

                  Gedanklich wäre es ne Möglichkeit, die Inhalte per Ajax abzurufen und per JavaScript das DOM zu bearbeiten.
                  Sinnvoll finde ich das zwar nicht unbedingt, aber ist eine Möglichkeit, die Du hättest.

                  Die Alternative: S****ß auf das kurze Blinken und mach'n Reload!
                  Is die einfachste Variante in dem Fall und durch den Browser-Cache und DSL wird das bei den meisten evtl. gar nicht auffallen.

                  Kommentar


                  • #10
                    Hallo allerseits!

                    Ich hatte mir eigentlich keine Antwort mehr erhofft.

                    Um so überraschter bin ich gerade

                    Also: Frames gehören nicht mehr ins Web 2.0 (meiner Meinung nach). Brauche ich etwas mit einer bestimmten Höhe, benutze ich max-height: x, das funktioniert mit fast allen Elementen. Zu meinem Problem hatte ich bereits eine Lösung gefunden: JavaScript. jQuery machts möglich.

                    Hat jemand JavaScript deaktiviert, wird die Seite neu geladen, und er muss das Geblinke ertragen. Gute Lösung meiner Meinung nach

                    Grüße aus dem Pott,
                    Matthias

                    Kommentar


                    • #11
                      Wieso max-height und nicht height?

                      Kommentar


                      • #12
                        Hallo nochmal!

                        Wäre auch eine Möglichkeit, ich benutze dieses Attribut aber nur in Code-Blöcken für Übersicht, und da passt max-height einfach besser.

                        Grüße aus dem Pott,
                        Matthias

                        Kommentar


                        • #13
                          jQuery machts möglich.
                          ...
                          Hat jemand JavaScript deaktiviert, wird die Seite neu geladen, und er muss das Geblinke ertragen. Gute Lösung meiner Meinung nach
                          Ja, das is imho ein guter Kompromiß.

                          ABER:
                          Brauche ich etwas mit einer bestimmten Höhe, benutze ich max-height: x
                          Was is mit IE ???
                          Der kann mit max-height allein nix anfangen...
                          Entweder Du baust auf height um oder verwendest für IE ein extra CSS.

                          max-width und max-height im IE (Englisch!)

                          Kommentar


                          • #14
                            Um ehrlich zu sein ist mir der IE sch*** egal. Ich blende über die speziellen Quotes einen Hinweis ein, der in der Kernaussage folgendes aussagt: Hol dir Firefox o.ä., oder du bist selber schuld, dass die Seite ka*** aussieht. Ich habe echt keine Lust, eine komplett neue Seite nur für den IE zu schreiben.

                            So, das war das Wort zum Montag

                            Eine gute kommende Woche noch,
                            Matthias

                            Kommentar

                            Lädt...
                            X