Daten in Echtzeit aus SQL Datenbank auslesen

Vielleicht hast Du Probleme, die Daten per DOM wieder auf der Seite darzustellen.
Naja, wo das Problem auch ist, der obige Link hat ein fertiges kurzes Beispiel zu Ajax, JSON und DOM.

mfg chmee
 
JSON ist doch gut für soetwas, mit PHP kannst du den String bequem per json_encode() erzeugen, und in JS per eval() oder json wieder dekodieren, so dass du in dem Beispiel 1 Array mit 2 Objekten als Inhalt erhältst.

Genau für soetwas ist JSON ja schliesslich gedacht....beliebige Objekte in Form eines Strings zu transportieren :)

Was man damit nun anfängt, hängt davon ab, was du damit machen willst:, .....was davon du wo wie ausgeben willst.

Hier mal nen Beispiel:
Code:
<script type="text/javascript">
<!--
//angenommen, das wäre die Antwort vom Server
json='[{"id":"1","wert":"123"},{"id":"2","wert":"3423"}]';

//"dekodieren"
eval('arr='+json);

//Verarbeiten, hier mal als simpler alert in Schleife
for(i=0;i<arr.length;++i)
{
  alert('Key:'+i+'\nid:'+arr[i].id+'\nwert:'+arr[i].wert);
}
//-->
</script>
 
Hallo,
ich hab das jetzt so mal übernommen. Funktioniert super. Nun brächte ich noch Eure Hilfe in 2 Dingen:

1. Wie „automatisiere“ ich das ganze also wie schaffe ich es dass jede Sekunde eine Abfrage ausgeführt wird
2. Wie Verknüpfe ich das ganze mit meinem PHP Script? (Das PHP Script gibt das ganz als txt Dokument zurück.)

EDIT:
Ich habe das Ganze mal etwas abgeändert. Wie kann ich das nun wie oben schon gefragt anpassen bzw. ändern?

HTML:
<html>
<head>
<title>AJAX</title>
<script type="text/javascript">
<!--
//angenommen, das wäre die Antwort vom Server
json='[{"id":"1","wert":"123"},{"id":"2","wert":"3423"},{"id":"3","wert":"34534"},{"id":"4","wert":"456456"},{"id":"5","wert":"476756"}]';

//"dekodieren"
eval('arr='+json);
//-->

function writevalues(arrid)
{
	document.write(+arr[arrid].wert);
}
	
</script>

</head>
<body>
<ul id="Liste"></ul>
<table width="200" border="1">
  <tr>
    <td width="89">Wert1:</td>
    <td width="95"><script type="text/javascript">writevalues(0);</script></td>
  </tr>
  <tr>
    <td>Wert1:</td>
    <td><script type="text/javascript">writevalues(1);</script></td>
  </tr>
  <tr>
    <td>Wert3:</td>
    <td><script type="text/javascript">writevalues(2);</script></td>
  </tr>
  <tr>
    <td>Wert4:</td>
    <td><script type="text/javascript">writevalues(3);</script></td>
  </tr>
  <tr>
    <td>Wert5:</td>
    <td><script type="text/javascript">writevalues(4);</script></td>
  </tr>
</table>
</body>
</html>
 
Zuletzt bearbeitet:
Hi,

statt unerwünschterweise Deinen Thread zu pushen, könntest Du doch einfach mal nachlesen, wie man mit Javascript einen Request an den Server sendet und das Ergebnis verwertet. Einen Link zum entsprechenden Kapitel hatte ich Dir schon gepostet. Da ist das an einem ganz simplen Beispiel erklärt.
Auch hier im Forum finden sich massenhaft Beispiele.

LG
 
Hi,
also zum pushen: ich habe es hier schon mal erlebt dass ein Thema von untergegangen ist. Nun zum einbinden des PHP Skriptes:
muss das dann so aussehen?

HTML:
<script type="text/javascript">
<!--
//angenommen, das wäre die Antwort vom Server
Json = http.open("GET", "script.php", true);
	
</script>

Soweit wäre mir das ja klar. Aber wie schaffe ich es nun dass sich das ganze jede Sekunde widerholt? Das kann ich der Seite nicht entnehmen…
 
Hi,

ohne dir zu nahe treten zu wollen - aber manche Themen verschwinden in der Versenkung, weil sich die Leserin oder der Leser im Verlauf eines Threads nicht des Eindrucks erwehren können, dass es sich beim Hilfesuchenden um eine offensichtliche Hilfeannahmeverweigerungshaltung handelt. Da sollte die aufkommende Interessenlosigkeit und Resignation bei der Helferin oder beim Helfenden duchaus nachvollziehbar sein.

Hast du dir den von @kuddeldaddeldu geposteten Link wirklich intensiv angesehen?
Dort ist mehr als ausführlich beschrieben, wie ein derartiger Request aussehen kann. Und wenn du nach unten scrollst, findest du sogar ein fertiges Beispiel ...

... weiterhin findet sich hier unter der Rubrik Tutorials eine Anleitung von Sven Mintel - HTTP-Requests unter Kontrolle behalten.

Das PHP-Script muss so angelegt sein, dass es die gewüschte Antwort ausgibt - echo oder print. Diese Antwort kannst du anschliessend auf Clientseite weiterverarbeiten.

Zum periodischen Aufrufen des Requests kannst du dir mal die Methoden setTimeout und setInterval auf SelfHTML ansehen.

Ciao
Quaese
 
So… ich hab das jetzt zum 3.mal durchgelesen. Ich hab jetzt versucht das Beispiel anzupassen:

HTML:
<html>
<head>
<title>AJAX</title>
<script type="text/javascript">
 
 // PHP Datei einlesen
  var http = null;
  if (window.XMLHttpRequest) 
  {
	  http = new XMLHttpRequest();
  } 
  else if (window.ActiveXObject) 
  {
	  http = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  if (http != null) 
  {
	  http.open("GET", "json_dbget.php", true);
	  http.onreadystatechange = ausgeben;
	  http.send(null);

  }
  
  function ausgeben()
  {
	  if (http.readyState == 4) 
	  {
		  var daten = http.responseText;
		      daten = eval("(" + daten + ")");
			  
		  var liste = document.getElementById("Liste");
		  
		  for (var i = 0; i < daten.length; i++)
		  {
			  var link = daten[i];
			  var li   = document.createElement("li");
			  var txt  = document.createTextNode(link.wert);
			  
			  li.appendChild(txt);
			  liste.appendChild(li);
		  }
	  }
  }
</script>


</head>
<body>
<ul id="Liste"></ul>

</body>
</html>

Als Ausgabe im InternetExplorer erhalte ich: " [object Object],[object Object] ". Nun frag ich mich was ich falsch mache…

Die Ausgabe des PHP Scriptes sieht folgendermaßen aus:

Code:
[{"id":"1","wert":"123"},{"id":"2","wert":"3423"}]

und wird als text/plain ausgegeben.

@ Quaese ich habe mir die Seite schon 2mal durchgelesen habe es jedoch nicht so ganz verstanden. Danke für den Link zu „set_timeout()“. Gibt es eventuell ein gutes Buch dazu was Empfehlenswert ist? (Möglichst einfach geschrieben)
 
Es wird wohl so sein, dass in
Code:
Daten[i]
immer noch Arrays stecken ?! Laß Dir in JS mal das Object/Array ausgeben. Danach sollte Dir klar sein, warum er immer noch Object auswirft..

In php gibt es den Befehl
Code:
var_dump
, in JS wüsste ich nicht auf Anhieb, wie es geht, aber die Lösung wird Dir gleich gegeben, da bin ich mir sicher.

mfg chmee
 
Zurück