Frage von luiluilui2, 59

Mit Javascript testen, ob es einen neuen Eintrag in der MySql Datenbank gibt. Geht das?

Ich bin momentan eine Website am programmieren und liege vor folgendem Problem: Ich möchte dass man so lange auf der Seite bleibt, bis in der MySql Tabelle an einer bestimmten Stelle etwas hinzugefügt wird. Also eigentlich sowas: SELECT spalte1 FROM tabelle WHERE spalte2 = 5 spalte eins beinhaltet einen lehren string, bis dieser von woanders aus gefüllt wird. Javascript soll dann, wenn es ein Eintrag gibt reagieren.

Wie kann man das ganze Lösen? man braucht aufjedenfall den Inhalt von spalte1

Kann man ein Iframe erstellen, welcher eine PHP seite anzeigt, welche den Inhalt aus spalte1 ausließt. Diesen IFrame müsste man ja dann nurnoch mit Javascript aktualisieren (Da was ich wie das geht) und anschließen müsste man dann den Inhalt aus dem Iframe mit Javascript auslesen.

Funktioniert das? Wenn ja, wie genau? Oder gibt es bessere / einfachere Lösungen?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von GoodbyeKitty1, 47

Such mal nach "AJAX"

Kommentar von GoodbyeKitty1 ,

iFrames sind TOT, nicht (!!!) mehr verwenden!
Wenn Du es richtig kompliziert machen willst, dann kannst Du auch noch nach "WebSockets PHP Javascript" googlen

Kommentar von Sarkophator ,

Was meinst du mit "tot", oder verwechselst du iframes mit frames? iframes werden mit HTML5 immer noch supportet und wurden sogar erweitert. (-> Sandbox) Werden auch sicher nicht so schnell verschwinden, da noch an einigen Stellen gebraucht. (Youtube-Videos etc. werden ja auch mittels iframe-Elemente auf anderen Websites eingebettet.)

Womit ich natürlich nicht sagen möchte, dass der Fragensteller iframes für die Lösung seines Problems benutzen soll.

Kommentar von fluffiknuffi ,

Mir wäre jetzt auch nicht klar wie er mit iFrame aber ganz ohne JS das Problem lösen will... Und wenn er sowieso JS benötigt, kann er auch gleich auf AJAX setzen.

Kommentar von luiluilui2 ,

Nach kurzem gegoole hab ich diesen code erstellt

function getContent(id) {
if (id == "") {
document.getElementById("content").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("content").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET","example.php?id="+id,true);
xmlhttp.send();

window.setTimeout("getContent(id)",500);

if(document.getElementById("content").innerHTML != "" && opening == false){
opening = true;
var url = document.getElementById("content").innerHTML;
window.open(url, howOpenUrl);
}
}
}
getContent(2);

/*Das Element mit der ID content muss natürlich position:absolute; und visibillity:hidden; haben*/
Antwort
von triopasi, 41

Ohne PHP o.Ä. nicht möglich. JS läuft auf dem Client, nicht auf dem Server.

Kommentar von tWeuster ,

Gibt auch serverseitiges Javascript.

Antwort
von tWeuster, 16

Wie dir hier schon in Brocken vor die Füße gekotzt wurde ist AJAX dein Suchbegriff.

Ich empfehle dir jedoch jquery zu benutzen. Dort einen ajax Statement abzusetzen sind ein paar Zeilen und du könntest es mittel copy&paste aus der docu ziehen.

Zu deinem eigentlichen Problem. Einen User zwingend auf einer Seite halten funktioniert nicht. Der User hat immer die Möglichkeit den Browser zu schließen. Das nur am Rande, falls dein Konzept darauf aufbaut (was auch immer das sein mag).

Wenn du keinen Content nachladen möchtest würde eine einfache true/false (0/1) abfrage reichen. Mittels Javascript/Ajax fragst du eine definierte Zielseite an. Diese wiederum braucht eine Serverseitige Implementierung, welche die Datenbank anzapft ob deine Bedingung erfüllt ist. Da du ein SQL Statement gepostet hast denke ich bist du mit diesem umstand vertraut?

Antwort
von maximilianus7, 18

"Kann man ein Iframe erstellen, welcher eine PHP seite anzeigt..." -- ja, kann man. und das wars auch schon: das besagte php-script gibt mit echo-befehlen den HTML-inhalt des iframes aus, in dem du auch die DB-ausgabe eingearbeitet hast. 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten