ilch Forum » Ilch Clan 1.1 » Allgemein » Divbox Refash

Geschlossen
  1. #1
    User Pic
    Garfield200508 Mitglied
    Registriert seit
    05.04.2011
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hallo leute,
    Wollt mal erfragen wie ich es anstellen kann, dass ich eine Box nach X Sekunden Refrashen kann.

    Ich habe im mom Jede Box einen DivContainer zugewiesen, welche mit der ID des BoxTitels versehen wird.

    Also ich habe nun per Javascript ein Refresh hinbekommen, ABER in der divbox ist nicht nur der inhalt der nötigen Box enthalten sondern wird die gesammte seite erneut geladen.

    Wie kann ich nun diese Box einzeln reloaden?

    dies ist bislang das was ich habe...
    <script type="text/javascript">
    // globale Instanz von XMLHttpRequest
    var xmlHttp3 = false;
    
    // XMLHttpRequest-Instanz erstellen
    // ... für Internet Explorer
    try {
        xmlHttpy3  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlHttpy3  = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlHttpy3  = false;
        }
    }
    // ... für Mozilla, Opera und Safari
    if (!xmlHttpy3  && typeof XMLHttpRequest != 'undefined') {
        xmlHttpy3 = new XMLHttpRequest();
    }
    
    // aktuelle Daten laden
    loadradioData3();
    
    // alle 30 Sekunden neue Daten / den Track holen
    setInterval("loadradioData3()",1000);
    
    function loadradioData3()
    {
     if (xmlHttpy3) {
         xmlHttpy3.open('GET', '', false);
         xmlHttpy3.onreadystatechange = function () {
             if (xmlHttpy3.readyState == 4) {
                 document.getElementById("OnAIR").innerHTML = xmlHttpy3.responseText;
             }
         };
         xmlHttpy3.send(null);
     }
    }
    </script>


    so und die Divbox um die es geht ist diese
    <div id="OnAIR"></div>


    Danke schon einmal und hoffe ihr könnt mir schnell helfen.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/
    libs/jquery/1.3.0/jquery.min.js"></script>
    <script type="text/javascript">
    var auto_refresh = setInterval(
    function ()
    
    {
    $('#load_div').load('div_insert.php').fadeIn("slow");
    }, 10000); // aller 10000 ms
    
    
    <body>
    <div id="load_div"> </div>
    </body>
    
    </script>


    div_insert.php
    <?php
    echo "Inhalt des DIV Containers";
    echo "Hier kann gebastelt werden!";
    ?>
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Garfield200508 Mitglied
    Registriert seit
    05.04.2011
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    gibts da keine andere möglichkeit für?... schade naja gut werd ich das sorum probieren.

    aber wie kann ich das anstellen das diese Box auf die MySQL Daten dann zugreift von Ilch?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Sicher gehts anders, machst halt ne Datei im contents Ordner, z.B. boxrefresh.php

    In der steht dann halt drin

    <?php
    defined('main') or die('no direct access');
    
    $boxfile = 'include/boxes/' . $menu->get(1) . '.php';
    
    if (file_exists($boxfile)) {
        include $boxfile;
    } else {
        echo 'Error: File not found!';
    }
    exit;
    ?>


    Dann kannst den Inhalt einer Box mit index.php?boxrefresh-BOXNAME abrufen, also bsp. index.php?boxrefresh-lastforum

    Wie du dann auf der Seite für den Refresh sorgst ist ja deine Sache, einfach gehts halt mit Jquery, aber auch wie du es geschrieben hast, du solltest dann aber darauf achten, dass in der Box selbst der Refresh nicht steht, sonst wird der bei jeden Refresh nochmal neu gestartet, bzw du musst ihn so schreiben, dass das nicht passiert, z.B. nicht setInterval sondern setTimeout verwenden, oder setInterval in einer Variable speichern, und wenn diese schon existiert keinen neuen Interval starten etc. etc.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Garfield200508 Mitglied
    Registriert seit
    05.04.2011
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    oke gut das hab ich dann verstanden. wenn ich das nun so mach wie du beschrieben hast kann ich das dann wieder als Box laden? also den inhalt dann in die vorgesehene Box stecken?

    Edit.:
    hab das mit dem boxrefresh.php imcontent getestet, komischer weise weigert der sich mir da was anzuzeigen, er meint *Error: File not found!* arrg

    Edit2.:
    arrg sollte das och richtig reinhaun lachen autsch aber danke.

    Zuletzt modifiziert von Garfield200508 am 05.04.2011 - 12:06:48
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Garfield200508 Mitglied
    Registriert seit
    05.04.2011
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Lord|Schirmer

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/
    libs/jquery/1.3.0/jquery.min.js"></script>
    <script type="text/javascript">
    var auto_refresh = setInterval(
    function ()
    
    {
    $('#load_div').load('div_insert.php').fadeIn("slow");
    }, 10000); // aller 10000 ms
    
    
    <body>
    <div id="load_div"> </div>
    </body>
    
    </script>


    div_insert.php
    <?php
    echo "Inhalt des DIV Containers";
    echo "Hier kann gebastelt werden!";
    ?>



    so aber nun zu dem hier, ich habe dies mal eben ausprobiert, aber irgendwie regt sich nix in der Divbox... oder überseh ich da gerade ein Fehler?
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten