kostenloser Webspace werbefrei: lima-city


Jquery Aktualisierung mit dynamischem Timer

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Hi Leute,

    ich bin neu hier und habe schon einige konstruktive Beiträge gelesen und auch verwenden können. Aktuell stehe ich vor einem großem Problem bei einer Jquery - Funktion mit der Hoffnung und Bitte, daß Ihr mir dabei helfen könnt.

    Kurze Beschreibung. Für ein Kundeninformationssystem, das für eine vorbestimmte Zeit Content anzeigt und dann automatisch wechselt, habe ich eine Jquery-Funktion verwendet: (Link: http://kis.schlesische-bratwurst.de)

    <script type="text/javascript">
    	 $(document).ready(function() {
    	   $("#refresh").load("refresh.php");
    	   var refresh = setInterval(function() {
    	      $("#refresh").load('refresh.php?' + 1*new Date());
    	   }, <? echo $mtime['microtime']; ?>);  // Zeitfaktor wird aus Mysql-DB ausgelesen
    	});
    	</script>
    
    <div id="refresh" style="text-align:center;"></div>


    Das funktioniert soweit auch absolut problemlos. Jetzt stehe ich vor dem Problem, daß nicht immer der gleiche Zeit-Rhytmus verwendet werden soll, da auch Videos mit eingebunden werden. Nun benötige ich eine Funktion bzw deren Erweiterung, dass mir erlaubt, dynamisch für jeden einzelnen Content aus der refresh.php, einen eigenen Timer aus der DB holen und verwenden zu können. Da die Index.php aber nicht refresht werden kann, stehe ich hierbei vor einem Problem. Habe schon vieles ausprobiert und mir auch die Finger wund gegoogelt (Englisch ist kein Problem) nur leider nie das richtige gefunden. Habt Ihr eine Idee oder hat jemand so etwas schon gelöst? Vielleicht sehe ich auch den Wald vor lauter Bäumen nicht....

    Wäre sehr dankbar, wenn mir hierbei jemand helfen könnte. Bin etwas Javascript Laie und kann es nicht wirklich gut. Dafür aber PHP.

    Ich sag schonmal Danke und wir lesen uns :)

    Viele Grüße
    Stefan

    Beitrag zuletzt geändert: 8.4.2013 7:58:48 von qr-soft
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo

    Wenn Deine Hauptseite auch PHP kann
    dann kannst Du ja vorher auslesen, welche Reload-ID als nächstes kommen soll
    plus dazu die Zeil, wie lange der Inhalt zu dieser ID angezeigt werden soll

    und mit diesen Daten den jQuery Reload Code "dynamisch" erstellen,
    also den Zufalls-Generator nicht innerhalb der refresh.php sondern schon vorher auf der Hauptseite
    und dann einen Parameter an die refresh.php übergeben, damit Dir genau diese ID angezeigt wird.

    Dazu muss aber in der Datenbank je Eintrag auch ein Wert mit vorhanden sein für die Zeit

    Also den jQuery Javascript Code "dynamisch" mit PHP erstellen und ausgeben
    <?php 
    // ------------------------------------------ 
    
    // ----- hier eine Ausgabe ID und Zeit aus der Datenbank per Zufall auswählen 
    // ----- als Ergebnis: z.B. Array $res mit ID und die Zeit in Millisekunden
    
    $jquery_code ="<script type=\"text/javascript\">
    	 $(document).ready(function() {
    	   $("#refresh").load("refresh.php");
    	   var refresh = setInterval(function() {
    	      $("#refresh").load('refresh.php?id=' + $res['id'] + '&ms=' + new Date().getTime());
    	   }, ".$res['microtime']."); 
    	});
    </script>
    '; 
    
    echo $jquery_code; 
    
    // ------------------------------------------ 
    ?>


    EDIT ... Achtung ... Fehler bei escape ... alle " im jQuery Code müssen escaped werden: \"
    BSP: $("#refresh") ---> $(\"#refresh\")

    korrigierter Code siege unten ...

    und dann in der refresh.php keine Auswahl per Zufall (die war ja schon vorher)
    sondern genau die vorher ermittelte (und per GET übergebene) ID ausgeben

    <?php 
    // --------------------------------------------------- 
    // ---- vorher Verbindung zu MySQL herstellen wegen mysql_real_escape_string()
    
    $if (!empty($_GET['id'])) { 
    $run_id = mysql_real_escape_string($_GET['id']); 
    
    $sql = "SELECT * FROM .... WHERE id = '".$run_id."' LIMIT 1"; 
    
    // --- usw. --- Ausgabe der Daten --- 
    }
    
    // --------------------------------------------------- 
    ?>


    Noachmal als kurze Zusammenfassung:

    1. Auswahl der ID + Zeit in der Hauptseite (MySQL select RANDOM)
    2. jQuery Code dynamisch mit Zeit und ID als GET-Parameter ausgeben
    3. in der refresh.php je nach GET-Parameter 'id' den Inhalt ausgeben

    viel Spaß.


    Beitrag zuletzt geändert: 8.4.2013 16:43:13 von coupon
  4. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Hmmm,

    jetzt brauch ich doch nochmal Hilfe... lokal hat es zunächst funktioniert. Hatte OmniHttpd als Server laufen. Mit Apache und nach dem Upload läuft leider nix mehr...

    Ich glaub ich mach mit dem Array etwas falsch bzw ich sollte evtl das nicht in einer While-Schleife lösen??

    Hier die Index.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
    <?
    require_once("includes/dbconf.php");
    dbConnect();
       $msql = "SELECT * FROM config WHERE id='1'";
       $mresult = mysql_query($msql);
       $mtime = mysql_fetch_assoc($mresult);
    ?>
    <!--<script type="text/javascript">
    	 $(document).ready(function() {
    	   $("#refresh").load("refresh.php");
    	   var refresh = setInterval(function() {
    	      $("#refresh").load('refresh.php?' + 1*new Date());
    	   }, <? echo $mtime['microtime']; ?>);
    	});
    	</script>
    -->
    <?
    $sql2 = "SELECT * FROM layer WHERE active='1' ORDER BY RAND()";
       $result2 = mysql_query($sql2);
       while($data2 = mysql_fetch_array($result2)) {
    ?>
    <?
    $jquery_code = "<script type=\"text/javascript\">
         $(document).ready(function() {
           $(\"#refresh\").load(\"refresh.php?id=<? echo $data2[id]\ ?>\");
           var refresh = setInterval(function() {
              $(\"#refresh\").load(\'refresh.php?id=' + <? echo $data2[id]; ?> + '&ms=\' + new Date().getTime());
           }, \".<? echo $data2[time] ?>.\");
        });
    </script>";
    
    } echo $jquery_code;  ?>
    
    
    </head>
    <div id="refresh" style="text-align:center;"></div>


    und die refresh.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    </head>
    <?
    require_once("includes/dbconf.php");
    dbConnect();
        
     if (!empty($_GET['id'])) {
    $run_id = mysql_real_escape_string($_GET['id']);
     
    $sql = "SELECT * FROM layer WHERE id = '".$run_id."' LIMIT 1";
    $result = mysql_query($sql);
    $data = mysql_fetch_assoc($result); 
    // --- usw. --- Ausgabe der Daten ---
    
    // Tabelle zu Testzwecken um zu prüfen dass ID-Wert übergeben wird
    $sql = "INSERT INTO test (nr, time) VALUES ('".$run_id."', '".$data2['time']."')";
    mysql_query($sql);
    // Ende Test
    ?>
    <!--<? if($data['direction'] == '1') { ?>-->
    <img id="picture" src="images/products/<? echo $data['picture']; ?>">
    
    <div id="title_big">
    <? echo $data['title']; ?>
    </div>
    <div id="title_sub">
    <? echo $data['subtitle']; ?>
    </div>
    <div id="weight">
    <? if($data['weight'] == '1') { $weight = "100g"; }
       elseif($data['weight'] == '2') { $weight = "1 kg"; }
       elseif($data['weight'] == '3') { $weight = "500g"; }
       elseif($data['weight'] == '4') { $weight = "&nbsp;Stück"; }
       else { $weight = ""; }
    echo $weight; ?>
    </div>
    <div id="price">
    <? echo $data['price']; ?>
    </div>
    <div id="price_kapit">
    <? echo $data['price_cent']; ?>
    </div>
    <? } ?>


    Habe mir zum überprüfen ob die ID per GET übergeben wird, eine Tabelle erstellt in die mit INSERT einfach die ID und der Zeitwert geschrieben wird. Es wird schon etwas eingetragen und auch im Rhytmus aber immer nur der Wert '0'.

    Ich bitte nochmals um ein wenig Hilfe, da mich das ganze schon seit Tagen beschäftigt. Vielen lieben Dank erstmal :)

    LG Stefan

    Beitrag zuletzt geändert: 8.4.2013 14:44:36 von qr-soft
  5. hallo


    sorry, mein $jquery_code (oben) war falsch escaped,

    versuch's mal so:

    $sql2 = "SELECT id,time FROM layer WHERE active='1' ORDER BY RAND() LIMIT 1";
       $result2 = mysql_query($sql2);
       $data2 = mysql_fetch_assoc($result2)); 
    
    
    $jquery_code = "<script type=\"text/javascript\">
         $(document).ready(function() { 
    	 
           $(\"#refresh\").load(\"refresh.php?id=".$data2['id']."&ms=\" + new Date().getTime());
           var refresh = setInterval(function() {
              $(\"#refresh\").load(\"refresh.php?id=".$data2['id']."&ms=\" + new Date().getTime());
           }, ".$data2['time'].");
        });
    </script>";
    
    echo $jquery_code;



    PS: innerhalb von $jquery_code = "..."; brauchts Du keine <?php Tags öffnen und schließen,
    das ist ja schon in PHP, muss man nur richtig escaped rein schreiben.

    Alternativ escaped wäre dann so (beachte auch Unterschied bei einfügen PHP Variable)

    $jquery_code = '<script type="text/javascript">
         $(document).ready(function() { 
    	 
           $("#refresh").load("refresh.php?id='.$data2['id'].'&ms=" + new Date().getTime());
           var refresh = setInterval(function() {
              $("#refresh").load("refresh.php?id='.$data2['id'].'&ms=" + new Date().getTime());
           }, '.$data2['time'].');
        });
    </script>
    ';




  6. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Hallo,

    MERCI!

    ich habe es jetzt so gemacht

    die refresh.php

    require_once("includes/dbconf.php");
    dbConnect();
    
     if(!empty($_GET['id'])) {
    $run_id = mysql_real_escape_string($_GET['id']);
    
    $sql = "SELECT * FROM layer WHERE id = '".$run_id."' LIMIT 1";
    $result = mysql_query($sql);
    $data = mysql_fetch_assoc($result);
    // --- usw. --- Ausgabe der Daten ---
    
    // Tabelle zu Testzwecken um zu prüfen dass ID-Wert übergeben wird
    $sql = "INSERT INTO test (nr, time) VALUES ('".$run_id."', '".$data2['time']."')";
    mysql_query($sql);
    // Ende Test
    ?>
    <!--<? if($data['direction'] == '1') { ?>-->
    <img id="picture" src="images/products/<? echo $data['picture']; ?>">
    
    <div id="title_big">
    <? echo $data['title']; ?>
    </div>
    <div id="title_sub">
    <? echo $data['subtitle']; ?>
    </div>
    <div id="weight">
    <? if($data['weight'] == '1') { $weight = "100g"; }
       elseif($data['weight'] == '2') { $weight = "1 kg"; }
       elseif($data['weight'] == '3') { $weight = "500g"; }
       elseif($data['weight'] == '4') { $weight = "&nbsp;Stück"; }
       else { $weight = ""; }
    echo $weight; ?>
    </div>
    <div id="price">
    <? echo $data['price']; ?>
    </div>
    <div id="price_kapit">
    <? echo $data['price_cent']; ?>
    </div>
    <? } ?>


    und die index.php

    require_once("includes/dbconf.php");
    dbConnect();
    
    $sql2 = "SELECT id,time FROM layer WHERE active='1' ORDER BY RAND() LIMIT 1";
       $result2 = mysql_query($sql2);
       $data2 = mysql_fetch_assoc($result2);
     
    $jquery_code = "<script type=\"text/javascript\">
         $(document).ready(function() {
          
           $(\"#refresh\").load(\"refresh.php?id=".$data2['id']."&ms=\" + new Date().getTime());
           var refresh = setInterval(function() {
              $(\"#refresh\").load(\"refresh.php?id=".$data2['id']."&ms=\" + new Date().getTime());
           }, ".$data2['time'].");
        });
    </script>";
     
    echo $jquery_code;


    jetzt zeigt er mir einen random-datensatz an (http://kis.schlesische-bratwurst.de). Ich kann in der Test-Tabelle auch sehen, dass er diesen auch refresht. Nur leider immer die gleiche ID und zur selben Zeit. Nur wenn ich die gesamte Seite reloade wird eine neue random-ID und die zugehörige Zeit gelesen und ausgegeben. Ich weiß leider wirklich nicht mehr weiter....das muss doch zu schaffen sein....

    Meine Idee ist, in der Index.php (die ja statisch bleibt), einen Zeiger mittels Javascript zu setzen, der nach ablauf des geholten Timers die Jquery-Sequenz neu lädt und somit eine neue id und neuen timer hat. nur wie ich das umsetze hab ich leider keine ahnung. lieg ich da richtig?

    Hast du noch ne idee? kann dir gerne mal ftp-zugriff geben zum verzeichnis wenn du so viel lust hast und dir das antun möchtest :)

    Danke nochmal. LG Stefan

    Beitrag zuletzt geändert: 8.4.2013 18:18:01 von qr-soft
  7. ja ok, das war auch ein Denkfehler von mir,
    die index.php wird ja nur 1x aufgerufen und bleibt dann ja statisch ... :oO

    und nochwas .. ich denke die $ Zeichen im PHP (jquery_code) sollte man auch escapen mit \$

    man könnte gleich alle IDs + Zeiten aus der Datenbank mit Zufall-Sortierung holen
    und dann diese Daten in der index.php im JavaScript in einem Array abarbeiten
    so dass bei jedem Durchlauf ein weiteres Array-Element (ID und Zeit) im jQuery verwendet wird

    also nicht LIMIT 1 sondern gleich alle Daten in der Index einlesen,
    und dann nacheinander abarbeiten, wenn Ende wieder von vorne.

    Dazu einen Zähler im jQuery-Code einführen, der mit 0 (Zahl: Null) beginnt
    mit dem man dann immer die Werte aus dem nächsten Array-Element nimmt
    und Wenn Zähler größer als Anzahl der Datenzätze ... dann wieder von vorne

    hier mal ein Versuch
    // ---- Alle IDs und Zeiten aus MySQL lesen 
    $sql2 = "SELECT id,time FROM layer WHERE active='1' ORDER BY RAND()";
    $result2 = mysql_query($sql2);
    
    print "<script type=\"text/javascript\">\n"; 
    
    print "var rfx_ids = new Array();"\n"; 
    print "var rfx_time = new Array();"\n"; 
    
    while($row = mysqli_fetch_assoc($result)) { 
    print "var rfx_ids[] = '".$row['id']."'; "\n"; 
    print "var rfx_time[] = '".$row['time']."'; "\n"; 
    }
    
    print "var i = 0"; "\n"; 
    
    print "\$(document).ready(function() { "\n"; 
    print "\$(\"#refresh\").load(\"refresh.php?id=\" + rfx_ids[i] + \"&ms=\" + new Date().getTime()); "\n"; 
    print "  var refresh = setInterval(function() { "\n"; 
    print "       i++; "\n"; 
    print "       if (rfx_ids.length < i) { i = 0 } "\n"; 
    print "      \$(\"#refresh\").load(\"refresh.php?id=\" + rfx_ids[i] + \"&ms=\" + new Date().getTime()); "\n"; 
    print "   }, rfx_time[i] ); "\n"; 
    print "}); "\n"; 
    
    print "</script>"\n";


    keine Ahnung ob das funktioniert,
    oder wie man innerhalb setInterval einen Zähler führt
    und mit diesem Zähler dann wiederum auf ein (zwei) Array(s) zugreift.

    die Idee ist
    a) 2 Arrays (je ID und Zeit in Millisekunden) für (in) Javascript erstellen
    b) einen Zähler der je Durchlauf auf das nächste Array-Element zugreift.
    c) wenn Zähler gräßer Anzahl, dann Zähler wieder auf Null zurücksetzen

    evtl. geht das auch mit nur einem (assoziativen) Array oder Objekt ...
    hab's auch nicht getestet, bin kein Javascript-Profi, aber die Idee find' ich gut .... :)


    Beitrag zuletzt geändert: 9.4.2013 2:02:02 von coupon
  8. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Wow Du bist ja ein richtiger Künstler :)
    Von der Logik hab ich mir das in etwa so vorgestellt nur in der Umsetzung habts gehapert.

    Ich habe es jetzt ganz einfach gelöst mit viiiieeelll rumprobieren und googlen :)

    ich mach´s mit ner PHP-SESSION

    die index.php

    <?
    // Erzwingen das Session-Cookies benutzt werden und die SID nicht per URL transportiert wird
    ini_set( 'session.use_only_cookies', '0' );
    ini_set( 'session.use_trans_sid', '0' );
    
    // Session starten
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
    <?
    
    require_once("includes/dbconf.php");
    dbConnect();
       
    ?>
    <script type="text/javascript">
    	 $(document).ready(function() {
    	   $("#refresh").load("refresh.php");
    	   var refresh = setInterval(function() {
    	      $("#refresh").load('refresh.php?' + 1*new Date());
    	   }, <? echo $_SESSION['timer']; ?>);
    	});
    	</script>


    und die refresh.php

    <?
    // Erzwingen das Session-Cookies benutzt werden und die SID nicht per URL transportiert wird
    ini_set( 'session.use_only_cookies', '0' );
    ini_set( 'session.use_trans_sid', '0' );
    
    // Session starten
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <?
    require_once("includes/dbconf.php");
    dbConnect();
    
     /*if(!empty($_GET['id'])) {*/
    $run_id = mysql_real_escape_string($_GET['id']);
    
    $sql = "SELECT * FROM layer WHERE active='1' ORDER BY RAND() LIMIT 1"; //  WHERE id = '".$run_id."' LIMIT 1
    $result = mysql_query($sql);
    while($tdata = mysql_fetch_array($result)) {
    // --- usw. --- Ausgabe der Daten ---
    
    $_SESSION["timer"] = $tdata["time"]; 
    ...............


    bei jedem aufruf der refresh.php durch das Script wird ein neuer timer aus der tabelle und in die $_SESSION['timer'] Variable geladen.
    Der Wert wird innerhalb der Session an die index.php zurückgegeben und diesen gebe ich einfach mit echo an der stelle wo der timer stehen muss aus. Klappe zu Affe tot :D

    Vielleicht nicht die eleganteste Lösung aber es funktioniert :))))

    Aber vielen lieben herzlichen Dank für Deine Beiträge und Hilfsbereitschaft !

    Viele Grüße
    Stefan



    Beitrag zuletzt geändert: 10.4.2013 8:24:47 von qr-soft
  9. ich glaub, ich habs hinbekommen,
    allerdings beginnt die Ausgabe mit dem 2ten Elemet aus Array,
    aber nach letzem Element kommt dann wieder das erste Element

    <html>
    <head>
    <title>TEST</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <?php 
    // ---------------------------------- 
    
    
    // --------- Daten aus Deiner Datenbank holen ------- 
    
    require_once("includes/dbconf.php");
    dbConnect();
    
    $sql2 = "SELECT id,time FROM layer WHERE active='1' ORDER BY RAND()";
    $result2 = mysql_query($sql2);
    
    while($row = mysql_fetch_assoc($result2)) {
    $rowdata[] = $row; 
    }
    
    // --------- von mir genutzes Test Daten Array ------- 
    /* --- 
    $rowdata = array( 
    	array('id' => '1', 'time' => '2000'), 
    	array('id' => '2', 'time' => '10000'), 
    	array('id' => '3', 'time' => '3000'), 
    	array('id' => '4', 'time' => '5000'), 
    	array('id' => '5', 'time' => '4000'), 
    ); 
    --- */
    
    
    
    // ---------------------------------- 
    ?>
    
    
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    
    <script type="text/javascript">
    
    var rfx_ids = new Array();
    var rfx_time = new Array();
    
    <?php 
    // ---------------------------------- 
    
    $y=0; 
    foreach ($rowdata as $row) { 
    print " rfx_ids[".$y."] = '".$row['id']."'; \n";
    print " rfx_time[".$y."] = '".$row['time']."'; \n";
    print "\n";
    $y++; 
    
    }
    
    // ---------------------------------- 
    ?>
    
    var i=0; 
    
    function runloop(i) { 
    	if (rfx_ids.length <= i) { i=0; } 
    	if (i == (rfx_ids.length-1)) { j=0; } else { j = (i+1); } 
    	$("#refresh").load("refresh.php?id=" + rfx_ids[j] + "&time=" + rfx_time[j] + "&ms=" + new Date().getTime());
    	i++; 
    	setTimeout(function(){runloop(i);}, rfx_time[j]); 
    }
    
    $(document).ready(function() { 
    	runloop(i); 
    }); 
    
    
    </script>
    
    </head>
    
    <body bgcolor="#FFFFFF" text="#000000">
    
    <br>
    <br>
    
    <div id="refresh" style="text-align:center;">...</div>
    
    <br>
    <br>
    
    </body>
    </html>


    ... also mit setTimeout() anstatt mit setInterval()


    ein Fehler war auch in der Schleife, wo man das js-Array mit Daten füllt,
    dort darf nicht jedesmal "var" davor stehen

    also anstatt
    print "var rfx_ids[] = '".$row['id']."'; "\n";


    besser so
    print "rfx_ids[] = '".$row['id']."'; "\n";



    meine refresh.php zum Testen sah so aus

    <?php 
    // --------------------------------------------- 
    
    print "<pre style=\"margin:4px; padding:4px; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($_GET);
    print "</pre>\n";
    
    // --------------------------------------------- 
    ?>


    zudem habe ich noch in meiner .htaccess

    Header set Cache-Control "must-revalidate, no-store, no-cache, max-age=0, pre-check=0, post-check=0"
    Header set Pragma "no-cache"


    nur um evtl Browser-Cache bei der Ausgabe zu vermeiden.

    ich hoffe das klappt jetzt besser :)




    Beitrag zuletzt geändert: 10.4.2013 9:31:21 von coupon
  10. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Du bist ein Genie :)))

    Es funktioniert absolut, total und ohne Fehler :)

    VIELEN HERZLICHEN DANK! Wie kann ich das wieder gut machen?

    Viele Grüße
    Stefan
  11. ne passt schon, ich helfe doch immer gerne :)

    noch ne Kleinigkeit,
    wie Du immer die aktuellste jQuery Version nutzen kannst

    http://code.jquery.com/jquery-latest.min.js


    anstatt eine bestimmte Version zu laden

  12. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    Hallo,

    jetzt bin ichs nochmal :P

    Also es funktioniert soweit absolut tadellos. Nur habe ich eines festgestellt. Da ja die Daten aus der MySQL zuvor in der index.php geladen werden, wird das Array aus allen zu dieser Zeit aktiven Datensätzen aus der Tabelle generiert.

    Wenn jetzt ein Datensatz hinzukommt (Admin-Bereich), wird dieser erst dann übernommen, wenn die index.php refresht wird :/

    Hab mich jetzt damit gespielt aber ich komm da nicht so wirklich drauf....

    Danke für Deine selbstlose Hilfe wollt ich Dir noch sagen :)

    LG Stefan
  13. also man könnte bestimmt auch die JS-Aray Erstellung in eine Datei auslagern,
    und auch diese per jQuery alle paar Minuten neu laden,

    aber macht das Sinn ??? ... so oft wird ja in der Datenbank hoffentlich nichts geändert,
    daher ist das meiner Meinung nach etwas zu viel des Guten, dies auch noch dynamisch zu machen.

    ich würde es so lassen, dass wenn Ändernung in Datenbank (Admin)
    dann muss man eben die index.php neu laden um Änderungen zu sehen


    Idee wäre noch, nach jedem kompletten Durchlauf die index.php
    per PHP
    header ('location:index.php');
    neu zu laden,
    aber auch das ist meiner Meinung nach ganicht nötig,

    Wenn ein Admin eine Änderung macht und diese dann sehen will,
    dann kann man diesem Admin auch den Schritt zumuten
    mal die index.php neu im Browser zu laden (STRG + F5)

    ... alles andere ist wohl mit Kanonen auf Spatzen schießen :)





  14. Autor dieses Themas

    qr-soft

    qr-soft hat kostenlosen Webspace.

    danke für deine antwort :)

    prinzipiell hast du da recht. Nur soll das ganze keine normale Internetseite sein, sondern ein Kundeninformationssystem in einem kleinen Intranet. Du musst Dir das so vorstellen, daß in einer Metzgerei hinter der Theke ein großer LCD-Fernseher hängt auf dem die Angebote etc angezeigt werden und durchlaufen. Hinten im Büro hockt ein DAU und klopft täglich neue Daten rein und löscht auch welche, wobei er wünscht, daß das dann automatisch abläuft. zumindest in einem intervall.

    ich bin die ganze zeit am basteln nur will es mir nicht recht gelingen.... regt mich langsam auf das ding aber interessant finde ich es trotzdem. hab ne menge gelernt :)

    Danke Dir!

    LG Stefan
  15. Hallo

    Du könntes einfach einen Meta-Refresh machen

    <meta http-equiv="refresh" content="180; URL=index.php" />


    damit wird die Seite alle x Sekunden (180 = 3 Minuten) neu geladen

    Aber dann kommt der Reload bestimmt mitten in einem Ausgabe Intervall.

    oder mit Javascript noch einen neuen Zähler
    var z=0;
    einfügen
    der zählt
    z++;
    hoch, wieviele gesamte Durchläufe waren,
    und wenn eine bestimmte Anzahl
    var r=3;
    erreicht ist,
    dann wird die Seite neu geladen.

    ungefähr so ...
    var i=0;
    var z=0; // --- neuer Zaehler Durchlauf 
    var r=3; // --- reload nach Durchlaeufe
    
    function runloop(i) {
        if (rfx_ids.length <= i) { i=0; z++; }
        if (z == r) { window.location.reload(); }
        else { 
          if (i == (rfx_ids.length-1)) { j=0; } else { j = (i+1); }
          $("#refresh").load("refresh.php?id=" + rfx_ids[j] + "&time=" + rfx_time[j] + "&ms=" + new Date().getTime());
          i++;
          setTimeout(function(){runloop(i);}, rfx_time[j]);
        ]
    }


    ... nur ne Idee, nicht getestet ... keine Ahnung ob
    window.location.reload();
    funktioniert,

  16. 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!