Aktualisierung mit Ajax
Pascal
- javascript
Hallo,
es geht um folgendes: Ich möchte für ein Radio den aktuellen Titel mit Interpret anzeigen und sich automatisch aktualisieren lassen. Titel und Interpret werden von einer Software in eine Tabelle in einer MySQL-Db geladen. Diese rufe ich mit php ab. Mein Problem ist allerdings noch, dass ich die Seite bisher neu laden muss. Meine bisherige Lösung sieht folgendermaßen aus:
var request = false;
var aktiv = window.setInterval("setRequest()", 1000);
function setRequest() {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {}
}
}
if (request) {
var url = "http://www.abc.de/fg.php";
request.open('post', url, true);
request.send(null);
request.onreadystatechange = interpretRequest;
}
}
function interpretRequest() {
switch (request.readyState) {
case 4:
if (request.status == 200) {
var content = request.responseText;
document.getElementById('radio_text').innerHTML = content;
}
break;
default:
break;
}
}
<div id="radio_text"></div>
Da die Lösung mit dem zweiten php-Dokument für mein Vorhaben aber ziemlich sinnlos ist, möchte ich direkt in der Seite, in der die Daten abgerufen werden, die Aktualisierung einbauen. Hat da vielleicht jemand den passenden Code zu oder ein Verweis o.ä.?
Danke im Voraus,
Gruß Pasi
moin,
Da die Lösung mit dem zweiten php-Dokument für mein Vorhaben aber ziemlich sinnlos ist, möchte ich direkt in der Seite, in der die Daten abgerufen werden, die Aktualisierung einbauen. Hat da vielleicht jemand den passenden Code zu oder ein Verweis o.ä.?
Ja, Warum eine Kontrollstruktur
Schönen Sonntag,
Horst Haselhuhn
Aber nach wie vor kein gutes, da du die AJAX Funktionen immer noch unkontrolliert ablaufen läßt und für jeden Request ein neues AJAX Objekt erstellst, anstatt es wieder zu verwerten.
Struppi.
Aber nach wie vor kein gutes, da du die AJAX Funktionen immer noch unkontrolliert ablaufen läßt und für jeden Request ein neues AJAX Objekt erstellst, anstatt es wieder zu verwerten.
Ich kann das auf Deiner Seite nicht finden, gib mit maln Link bitte.
Rolf
Ich kann das auf Deiner Seite nicht finden, gib mit maln Link bitte.
Was kannst du nicht finden?
Struppi.
Ich kann das auf Deiner Seite nicht finden, gib mit maln Link bitte.
Was kannst du nicht finden?
Du könntest ja Deinen JS-Code mal veröffenlichen, damit ich mir das anschauen bzw. testen kann. Kannst mir auch schicken.
Viele Grüße,
Horst Fleischbeschauer
Du könntest ja Deinen JS-Code mal veröffenlichen, damit ich mir das anschauen bzw. testen kann. Kannst mir auch schicken.
Naja, vom veröffentlichen ist der Code noch weit entfernt. Das Ding sieht bisher so aus: http://javascript.jstruebig.de/test/ajax.js
Grobe Verwendung:
var x = Ajax.request();
x.onerror = function(msg) {
var o = document.getElementById('ajax_status');
o.innerHTML = msg;
}
function doIt(url) {
x.oncomplete = function(res) {
var t = res.response(true);
set('Header:\n' + x.header());
set(res.response());
var o = document.getElementById('ajax_status');
o.innerHTML = x.status() + '( Zeit: ' + x.time() + 'ms)' + x.size('kb') ;
};
x.open(url, 'GET', type, ch);
}
function set(txt) {
var obj = document.getElementById('output');
if(!txt) obj.innerHTML = ''; else
obj.innerHTML += txt;
}
<form action="#">
<fieldset>
<legend>Test</legend>
<label>Dateiname: <input value="test.html" name="file"></label>
<input type="button" value="send" onclick="doIt(this.form.file.value)">
</fieldset>
<fieldset id="status"><legend>Status:</legend>
<div id="output"> </div>
<div id="ajax_status"> </div>
</fieldset>
</form>
Aber wie gesagt, noch bei weitem nicht fertig.
Struppi.
Moin,
Aber wie gesagt, noch bei weitem nicht fertig.
Egal, isch probieren!!!! Und wehe geht nicht ;-)
Danker Dir mein Lieber,
Horst Fettbemme