| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: Ajax Seitenteile aktualisieren im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo und guten Tag an alle, ich hab mal wieder ne Frage :/ und zwar: ich würde gerne einen ...
![]() |
| | #1 (permalink) |
| Anzeige Hallo und guten Tag an alle, ich hab mal wieder ne Frage :/ und zwar: ich würde gerne einen Teil meiner Seite aktualisieren. z.B. das Datum auf der Seite. Soweit ich weiß funktioniert das mit Ajax recht gut. Ich würde auch gerne einen chat auf der Seite einbinden der dann eben auch so funktionieren soll -> abfrage aus der Datenbank -> wenn ne änderung vorliegt soll die Änderung für den Besucher ausgegeben werden (zs mit dem alten inhalt -> also hinzugefügt) Mein Problem ist jetzt nur, das ich nicht weiß wie sowas zu realisieren ist, da ich mich mit js so gut wie gar nicht auskenn und mit ajax gar nicht. Wie ist soeine Abfrage über Ajax an ne php datei aufgebaut, was benötige ich für Dateien, usw? Würde mich sehr freuen wenn mir jemand helfen könnte,... eine Antwort mit kleinem Beispiel würde mich noch bedeutend glücklicher machen, da ich mir unter irgendwelchen "Fachbegriffen" nicht allzu viel vorstellen kann ![]() Vielen Dank schonmal, Selig | |
| | |
| | #2 (permalink) |
| Member of Honour ![]() | du brauchst erst einmal 2 Dateien: eine, die für die Darstellung im Webbrowser ist und JavaScript-Code enthält und eine, welche Inhalte aus der Datenbank strukturiert ausgibt (entweder als Klartext oder als XML möglich). Wenn es um einzelne Flags oder Zahlen geht (z.B. Aktualisierung der Anzahl neuer PNs), dann reicht für gewöhnlich eine reine Textausgabe, bei Chats dagegen macht sich XML besser. client-seitig (Java-Script): als erstes musst du ein XML-HTTP-Request-Objekt erzeugen und dieses sollte sowohl von aktuellen Browsern (Gecko-Browser, KHTML/WebKit-Browser, Opera und aktuelle IEs) als auch von älteren IEs ordentlich erzeugt werden... dazu dieser Code-Schnipsel: Code: var XMLHTTP = null;
if (window.XMLHttpRequest) {
// moderne Browser wie
// - Mozilla (und andere Gecko-Engine-basierten Browser),
// - Opera,
// - Safari, Konqueror (und andere KHTML- / WebKit-Browser)
// - und InternetExplorer ab Version 7
XMLHTTP = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
//Internet Explorer 5
XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
} catch (ex) {
try {
//Internet Explorer 6
XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
} catch (ex) {
}
}
} Code: if (XMLHTTP) {
XMLHTTP.open('GET', 'beispiel.xml');
XMLHTTP.onreadystatechange = function () {
if (XMLHTTP.readyState == 4) {
alert(XMLHTTP.responseText);
}
};
XMLHTTP.send(null);
} Wenn du responseXml statt responseText nutzt, dann bekommst du ein (JavaScript-/DOM-)XML-Objekt zurück. Die Arbeit mit dem DOM-Objekt: Mit Code: var xml = XMLHTTP.responseXml;
var results = xml.getElementsByTagName('childnode'); mit Code: results.length mit Code: results[i].firstChild.nodeValue und mit Code: results[i].getAttribute("attrib1"); weitere Infos auf SelfHTML: http://de.selfhtml.org/javascript/objekte/node.htm Methoden des XMLHttpRequest-Objekts abort() Bricht eine Anfrage abgetAllResponseHeaders() Liefert alle HTTP-Header der HTTP-Antwort zurückgetResponseHeader(name) Liefert den angegebenen HTTP-Header der HTTP-Antwort zurückopen(method, URL [, async[, User[, Pass]]]) Initialisiert ein XMLHttpRequest-Objektsend(data) Setzt die HTTP-Anfrage ab.setRequestHeader(name, value) Setzt einen Header-Eintrag für die HTTP-Anfrage. Eigenschaften des XMLHttpRequest-Objekts onreadystatechange EventHandler beim Zustandswechsel des XMLHttpRequest-Objekts (kann entweder ein Funktionsname oder eine anonyme Funktion sein)readyState Zustand des XMLHttpRequest-ObjektsresponseText HTTP-Rückgabe als TextresponseXML HTTP-Rückgabe als (JavaScript-/DOM-)XML-Objektstatus HTTP-StatuscodestatusText Textbeschreibung des HTTP-Statuscodes serverseitig (PHP) Da die XML-Daten niemals aus dem Cache kommen sollen, muss dies über Header dem Browser mitgeteilt werden: Code: header('Cache-Control: no-cache, must-revalidate');
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT'); Code: header('Content-type: text/xml'); Code: $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><rootnode></rootnode>'); Code: $child = $xml->addChild('childnode', 'content'); $child->addAttribute('attrib1', 'foo'); $child->addAttribute('attrib2', 'bar');
$child = $xml->addChild('childnode'); $child->addAttribute('attrib1', 'bla'); $child->addAttribute('attrib2', 'blub'); Dieser Code sorgt nun für folgende Ausgabe: Code: <?xml version="1.0" encoding="UTF-8"?> <rootnode> <childnode attrib1="foo" attrib2="bar">content</childnode> <childnode attrib1="bla" attrib2="blub" /> </rootnode> Und wie du mit JavaScript HTML-Elemente erzeugst und bearbeitest, darauf bin jetzt ich auch nicht näher eingegangen... das findest du auch alles unter SelfHTML. Quellen (ich heiß ja schließlich nicht Guttenberg ):Das JS-Grundgerüst und die Auflistung der Methoden und Eigenschaften stammen im wesentlichen übrigens aus diesem Buch, welches ich sehr empfehlen kann: http://www.amazon.de/AJAX-schnell-ko.../dp/3935042922 Geändert von beavisbee (01.03.11 um 17:12 Uhr) Grund: Methoden und Eigenschaften des XML-HTTP-Request-Objekts + Buch-Tipp |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter | oooh shi.... aber danke,... werd mich wohl intensiver damit beschäftigen müssen als ich anfangs dachte :/ du hast mir aber aufjedenfall sehr geholfen! |
| | |
| | #4 (permalink) |
| Member of Honour ![]() | Wenn du das erst ein bis zwei mal gemacht hast, dann ist es echt ganz einfach. Hab mich selbst auch lange Zeit davor gedrückt ![]() Hab per EDIT gerade noch eine Auflistung der Methoden und Eigenschaften des XML-HTTP-Request-Objekts in den oberen Beitrag gepostet, vielleicht hilft's... |
| | |
| | #5 (permalink) |
| Themenstarter | ja ich hab's bis jetzt auch einige zeit aufgeschoben, aber wenn du sagst das es nicht sooo kompliziert ist wie's aussieht, dann glaub ich dir das mal - lieber "nicht" gutenberg ![]() ich geh stark davon aus das mir dein beitrag helfen wird! & danke für den Link zu dem Buch,... werd ich mir wohl auch besorgen. greetz selig |
| | |
| | #6 (permalink) |
| Registriert seit: 21.08.10 ![]() Likes: 10 | Wenn du es einfacher haben moechtest, nutze ein geeignetes Framework wie z.B. Prototype. |
| | |
| | #7 (permalink) |
| Themenstarter | soooooo,... hab das script jetzt mal hingebastelt - es funktioniert auch bei firefox und opera, leider aber nicht bei internet explorer (obwohl leider da nicht so ganz stimmt,... aber man muss ja auch mit nutzern rechnen die mit katastrophen surfen ) eingebunden ist es auf dieser Seite: www.usa2007.de mit Firefox und Opera wir alles Wunderbar angezeigt, und die uhr funktioniert,... beim IE tut sich nix :/ dankeschön |
| | |
![]() |
| Stichworte |
| ajax, aktualisieren |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |