• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

div-element inkl. php-skript über javascript aktuallisieren

poidokan

New member
Hallo,

ich möchte alle 10 Sekunden die aktuellen Daten von meinem Server in ein Div schreiben. Es passiert allerdings nichts.

In den Suchmaschinen habe ich nur Möglichkeiten gefunden, für die ich Ajax können müßte, was ich noch nicht tue. Gibt es denn keine andere Möglichkeit?

HTML:
<div id="control">
  <?php include 'sauna-rechnen.php'?>
</div>		
<script language="javascript"> 
  setInterval(auffrischen, 10000);
  function auffrischen () {
    document.getElementById("control").reload(true);
  }	
</script>

Vielen Dank für eure Hilfe!
 
Zuletzt bearbeitet von einem Moderator:
Für Einsteiger noch einfacher ist es den Inhalt in einen iFrame darzustellen und selbigen zyklisch neu zu laden.
Ja, ich weiß, Frames sind uncool..
 
Besten Dank schonmal! Ich habe mich getraut zu ajaxen und bin fürs Erste ganz zufrieden:

HTML:
function auffrischen () {
	xmlhttp=new XMLHttpRequest();
	xmlhttp.onreadystatechange=function(){
		if (xmlhttp.readyState==4 && xmlhttp.status==200){
			document.getElementById("control").innerHTML=xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET","sauna-rechnen.php",true);
	xmlhttp.send();
}

Leider geht mir nach dem Auffrischen ein Iframe verloren, der weiter hinten im Code kommt. Wie Cool oder uncool Iframes sind stört mich recht wenig. Das ganze Projekt läuft nur in meinem Heimnetzwerk. HIntergrund ist, daß ich in meiner Sauna in der Gartenhütte einen Microcontroller mit Temperatursensor habe, der über Wlan seine Daten in eine Mysql schreibt. Die möchte ich zusammen mit dem Stream der Baby-Cam (dafür der andere Iframe) auf einer Seite abrufen können.

@jspit: Wie würde dsa mit dem Iframe aussehen? Hast du ein Beispiel?

@kkapsner: Was bedeutd "unabhängig" bei der sauna-rechnen.php?

@mikdoe: Worauf genau muss ich wegen dem Cache achten?
 
Das ist relativ einfach, ich machs jetzt Mal fertig (soweit es geht)

1. Du musst jQuery in deine Seite einbinden falls noch nicht passiert
2. folgender JS-Code einbinden

Code:
$.ajax({
	type: 'GET', // entweder GET oder POST, das kommt darauf an was genau du machen willst
	url: location.protocol+'//'+location.host+'/pfad/zur/datei.php', // selbsterklärend
	data: {q:a,m:b,i:c,e:d,p:f}, // diese daten sind optional, können in der datei als $_GET oder eben als $_POST entgegengenommen werden
	async: true,
	cache: false,
	success: function(r) {

		// kannst du die daten annehmen, wie das passiert hängt aber vom header in der php-datei ab
		
		// bsp: deine php-datei gibt den header
		// header("Content-Type: application/json; charset=UTF-8");
		// dann aknnst du folgendermaßen auf die daten zugreifen
		$('#control').html('').html(r);

		// gibt die php-datei keinen speziellen header an oder header("Content-Type: text/html; charset=UTF-8");
		// dann musst du zuerst parsen
		
		var data = $.parseJSON(r);

		// und anschließend die daten übergeben
		$('#control').html('').html(data);

		// achtung: das .html('') sorgt dafür, dass der div jedesmal geleert wird bevor die neuen daten eingetragen werden


	}

});
 
Zurück
Oben