ich versuche gerade einen AJAX Chat zu basteln. Serverseitig Python.
Nun funktioniert mein Script wunderbar, in allen Brwosern außer im IE (6 und 7).
Code: Alles auswählen
var anzahl = 0;
var ajax_counter = 0;
var http_request = new Array;
var inhalt = new Array;
var aktiv = window.setInterval("interval()",5000);
function interval() {
ajax_counter++;
var send = inhalt.join("");
inhalt = new Array;
Ajax(ajax_counter,send,anzahl);
anzahl = 0;
}
function absenden() {
anzahl++;
text = "&text" + anzahl + "=" + document.getElementById("text").value;
von = "&von" + anzahl + "=" + document.getElementById("meinname").value;
an = "&an" + anzahl + "=" + document.getElementById("an").value;
inhalt.push(text,von,an);
document.getElementById('ausgabe').innerHTML = document.getElementById('ausgabe').innerHTML + "Ich: " + document.getElementById("text").value + "<br />";
scrollen();
}
function scrollen() {
document.getElementById("chattext").scrollTop = document.getElementById("ausgabe").offsetHeight - 200;
}
function Ajax(counter,send,inhalt_anzahl) {
http_request[counter] = false;
if (window.XMLHttpRequest) {
http_request[counter] = new XMLHttpRequest();
if (http_request[counter].overrideMimeType) {
http_request[counter].overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
try {
http_request[counter] = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request[counter] = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request[counter]) {
return false;
}
http_request[counter].open('GET', 'chat.py?anzahl=' + String(inhalt_anzahl) + "&name=" + document.getElementById("meinname").value + send, true);
http_request[counter].onreadystatechange = function(){
if (http_request[counter].readyState == 4) {
if (http_request[counter].status == 200) {
document.getElementById('ausgabe').innerHTML = document.getElementById('ausgabe').innerHTML + http_request[counter].responseText;
scrollen();
}
}
};
http_request[counter].send(null);
}
Code: Alles auswählen
print "Content-Type: text/html\n"
import cgi
form = cgi.FieldStorage()
import time
import MySQLdb
#Eingaben in Datenbank speichern
anzahl = form.getfirst("anzahl",0)
for x in range(1,int(anzahl) + 1):
text1 = form.getfirst("text%s" %x,"")
von1 = form.getfirst("von%s" %x,"")
an1 = form.getfirst("an%s" %x,"")
anfrage_speichern = connection.cursor()
if text1 != "":
anfrage_speichern.execute("INSERT INTO chat(text,von,an,wann,gelesen) VALUES('%s','%s','%s','%s','0')" %(text1,von1,an1,time.strftime("%d.%m.%Y %H:%M", time.localtime())))
#Datenausgabe
meinname = form.getfirst("name","")
anfrage_ausgabe = connection.cursor()
anfrage_ausgabe.execute("SELECT von,wann,text,id FROM chat WHERE gelesen='0' AND an='%s'" %meinname)
result_ausgabe = anfrage_ausgabe.fetchall()
for y in result_ausgabe:
von2,wann2,text2,id2 = y
print "%s %s: %s<br />" %(wann2,von2,text2)
anfrage_ausgabe.execute("UPDATE chat SET gelesen='1' WHERE id='%s'" %id2)
das ganze könnt ihr hier testen. Einfach zwei Brwoserfenster öffnen meinname und an müssen natürlich angepasst werden, damit das Skript weiß, welche Datenbankeinträge an euch senden soll.
www.homepages4you.de/chat_index.html
Vielen Dank!