reload & scollen ohne zucken

Das Thema, welches con-f-use mit "Augen öffnen" meinte, ist jenes: http://www.tutorials.de/tutorials201738.html

Das Prinzip ist recht einfach:
PHP:
<?php echo '//irgendwelcher Javascriptcode' ?>

PHP kann nicht nur HTML-Dokumente ausliefern, sondern alles, was du willst: Bilder, Programme, ...und halt auch Skripte. Du solltest dem Browser nur sicherheitshalber per header() sagen, was dort ankommt.

Wenn du willst, kann ich dir die PHP-Source von dem Skript, welches den tutorials.de-Newsfeed ausliest, zukommen lassen, damit du ihn dir anschauen kannst und das Prinzip verstehst(ist nicht sehr viel Code, man kapiert das schnell :))

Ich hoff, ich krieg bis Dienstag auch endlich mal das einigen Leuten zu dem Thema versprochene Tutorial dazu fertig...das dürfte dann auch weiterhelfen.
 
Mach's doch gleich als Dateianhang, wäre gut für mein Archiv...

...Danke! :)

Du weißst schon, dass du in letzter Zeit die Person Nr. 1 bist, von der ich Ideen klaue? ;) Hab mich aber bemüht überall einen Hinweis zu schreiben.
 
Zuletzt bearbeitet:
hab mir mal den Beitarg angeschaut.
Mein Problem ist aber, wie mache ich dass, dass die Datenbank Daten in ein Javascript kommen. Hab da leider gar keine Ahnung. Könntet ihr mir dass mal anhand eines bsp zeigen?

mb fanste
 
Zewei Dateien. Ein PHP-JavaScript (daten.js.php), das die aktuellen Daten aus der Datenbank holt. Eine normale HTML-Seite (index.html), die die Daten aufruft.

Ich nehme mal an du kennst die ganze Schose mit sql_querry etc. Nehmen wir der Einfachheit halber mal an die Daten wären in der PHP-Variblen $DaTeN gespeichert und vorher aus der DB geholt. Dann sieht die daten.js.php z.B. so aus:
PHP:
echo "var dAtEn = \"".$DaTeN."\";";

Die index.html läd dann diese daten.js.php in der dann also die JavaScript-Variable dAtEn mit dem Wert der Daten aus der DB belegt wurde. Da du nach dem Laden der daten.js.php auf dAtEn zugreifen kannst kannst du auch auf die Daten in der DB zugreifen. Willst du allerdigs wieder aktuelle nachliefern musst du zuerst wieder die daten.js.php laden (hier im Beispiel mit der Funktion "daten_php_js_laden()" ). Hier mal das Beispiel für die index.html:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en" xml:lang="de" xmlns="http://www.w3.org/1999/xhtml">
 <head><title>Daten ausgeben</title><meta name="AUTHOR" content="con-f-use@gmx.net" /><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
       
       <script type="text/javascript"><!--
       	function daten_php_js_laden() {
       		skript=document.createElement('SCRIPT');
       		skript.setAttribute('src','daten.js.php?'+new Date().getTime());
       		document.getElementsByTagName('BODY')[0].appendChild(skript);
       	}
         
       	function daten_ausgeben() {
       		alert(dAtEn);
       	}
       //--></script>
         
       </head><body><div>
       
   <input type="button" value="Neue Daten Ausgeben!" onclick="daten_php_js_laden();setTimeout('daten_ausgeben()',3000)" />
       
 </div></body></html>
Du musst hier aber dem zu ladenden Script etwas Zeit geben bis es der Server gesendet und der Browser geladen hat. Daher das Timeout bevor die daten ausgegeben werden.

Hoffe das wird jetzt ein wenig klarer.
 
Zuletzt bearbeitet:
Ja DANKE! Das habe ich kapiert.
Und wenn ich die daten nun von alleine aktualliesieren lassen öchte, muss ich nur statt
Code:
<a href="#" onclick="daten_php_js_laden();setTimeout('daten_ausgeben()',3000)">Neue Daten ausgeben</a>

Code:
setTimeout(daten_php_js_laden();',2500)
setTimeout('daten_ausgeben()',3000)
in das Script schreiben. Dass zweimal, damit sie auch wirklich "ausgetauscht" wurden!

Stimmt dass, oder habe ich da einen Denkfehler
 
Zuletzt bearbeitet:
Du hast einen Denkfehler.

So, wie du's machen wolltest würden immer die gleichen Daten ausgegeben, weil du sie ja nie mit daten_php_js_laden() aktualisiert. Du müsstest noch eine dritte Funktion schreiben:
HTML:
function aktualisiert_ausgeben_in_schleife() {
   daten_js_php_laden();
 setTimeout('daten_ausgeben()',3000); // mit dem Timeout gibst du der daten_js_php_laden()-Funktion 3 sekunden um das script vom Server zu laden
 setTimeout('aktualisiert_ausgeben_in_schleife()', 10000); //Hier rufst du die Schleifen-Funktion nach 10 Sekunden wieder auf, dann wird sie ausgeführt, ruft sich wieder nach 10 Sek. auf usw. - daher "in_schleife"
  }
 
Zuletzt bearbeitet:
Gemach, gemach, es wurde gerade nur das "wo er ist" nicht mit gepostet (komischer weise).

Dieses Forum mag mich irgentwie nicht, es verschluckt manchmal Teile meiner Posts oder macht meine Einrückung bei den Scripts kapput (siehe zwei Posts füher). Du wirst kaum einen Post von mir finden, der nicht editiert wurde...

P.S.
Wenn alles verstanden, dann bitte als "erledigt" markieren.
 
Zuletzt bearbeitet:
Zurück