Ajax-Probleme
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abfrage
asynchron laufen
auslese
bisherigen code
break
code
datei
einzige funktion
fehler
form
funktion
geschichte
inhalt
null
parameter
problem
switch
type
url
zeugs
-
Da ich kaum Javascript kann, es jedoch immerwieder benötige gab es im Gebit Ajax in letzer Zeit einige Probleme. Sicherlich ein großer Grund für das Entstehen der Probleme ist die Unübersichtlichkei der Funktionen die gebraucht werden.
Ich habe versucht, mir eine Funktion mit einem Parameter zu schreiben, welche den Inhalt einer Datei zurückgibt. Der Parameter legt die Datei fest. Meine Funktion hat nur teilweise funktioniert, da Fehler entstanden sind konnte ich sie nicht einbauen. In der fehlerkonsole wurden die Fehler nicht gezeigt.
Meinen bisherigen Code zu posten hat sicherlich keinen großen Wert, da ich euch damit nur verwirren würde.
Wichtig ist mir, dass ich das ganze über eine einzige Funktion aufruen kann, ohne etwas wie "responseText". Beispielsweise so:
var ausgelesen = auslesen('lesen.php');
mfg drafed-map -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das hier müsste funktionieren, ist aber ungetestet:
function auslesen(datei) { var req = null; try { req = new XMLHttpRequest(); } catch (ms) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (nonms) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { req = null; } } } if (req == null) alert("Dein Browser unterstützt kein AJAX!"); req.open("GET", datei, true); req.onreadystatechange = function() { switch(req.readyState) { case 4: if(req.status!=200) { return false; } else { return req.responseText; } break; default: return false; break; } } req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null); }
Dann kannst du z.B. über
alert(auslesen('datei.php'));
den Inhalt der Datei auslesen.
Beitrag zuletzt geändert: 24.7.2009 12:41:14 von cookies -
Der Code funktionert leider nicht. Es wird nur "undefiniert" gezeigt. Mittels eines PHP-Counters habe ich herausgefunden, dass die Datei aufgegrufen wird. Es muss also am Rückgabewert der Funktion liegen.
-
Ich würde mal versuchen
function auslesen(url) { // das ganze catch-zeugs sollte ja bekannt sein, deshalb lass ich das hier weg if (window.XMLHttpRequest) { req=new XMLHttpRequest(); } else { req=new ActiveXObject("Microsoft.XMLHTTP"); } if (req) { req.open("GET", url, false); req.send(null); return req.responseText; } else { return false; } }
Wenn ich das Problem richtig durchschaue - ich bin selbst AJAX anfänger - machte der beim Vorposter die Abfrage asynchron und hat deshalb nichts im Rückgabewert.
Das Problem an der Geschichte ist, dass die abfrage nun "Synchron" erfolgt - soll heissen: Ich hatte da schon Probleme, dass die Webseite anfing zu hängen. Wenn du die Abfrage asynchron laufen lassen willst, wird das ganze wesentlich aufwändiger.
Ist allerdings wie beim Vorposter ungetestet. ;)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage