Ajax Chat
jus2
- javascript
Hallo liebes Forum,
Seit einiger Zeit programmiere ich in der Freizeit an einem Browsergame.
Nun bin ich an dem Punkt angelangt, wo ich gerne einen Chat einfügen würde.
Ich habe das bereits mit einem Formaular erfolgreich getan.
Jetzt möchte ich allerdings mit einer Javascript/Ajax funktion, den vom User geschriebenen Text an die PHP datei übermitteln (z.B. chat_send.php?content=hallo)
Ich würde das gerne so machen, damitdie Seite nicht neu geladen werden muss.
mein test:
function chatwrite() {
if(document.getElementById("chatwriteinput").value.substr(document.getElementById("chatwriteinput").value.length - 1, 1) == "\n") {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
http_chatinsert=new XMLHttpRequest();
}
else {
// code for IE6, IE5
http_chatinsert=new ActiveXObject("Microsoft.XMLHTTP");
}
http_chatinsert.open("GET","../php/post/chat_send.php");
http_chatinsert.onreadystatechange=function() {
if (http_chatinsert.readyState==4 && http_chatinsert.status==200) {
document.getElementById("chatwriteinput").value = http_chatinsert.responseText;
}
}
http_chatinsert.send();
}
}
Dieser code hat nur leider keine Funktion.
Wäre sehr nett, wenn mir einer die Lösung meines Problemes sagen könnte. Kenne mich mit Ajax überhaupt nicht aus
Entschuldigt bitte, hier nochmal den Code richtig formatiert:
function chatwrite() {
if(document.getElementById("chatwriteinput").value.substr(document.getElementById("chatwriteinput").value.length - 1, 1) == "\n") {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
http_chatinsert=new XMLHttpRequest();
}
else {
// code for IE6, IE5
http_chatinsert=new ActiveXObject("Microsoft.XMLHTTP");
}
http_chatinsert.open("GET","../php/post/chat_send.php");
http_chatinsert.onreadystatechange=function() {
if (http_chatinsert.readyState==4 && http_chatinsert.status==200) {
document.getElementById("chatwriteinput").value = http_chatinsert.responseText;
}
}
http_chatinsert.send();
}
}
Hi,
Wäre sehr nett, wenn mir einer die Lösung meines Problemes sagen könnte.
Gerne. Was du als erstes machen musst, ist das
Kenne mich mit Ajax überhaupt nicht aus
ändern.
MfG ChrisB
Hi,
Wäre sehr nett, wenn mir einer die Lösung meines Problemes sagen könnte.
Gerne. Was du als erstes machen musst, ist das
Kenne mich mit Ajax überhaupt nicht aus
ändern.
MfG ChrisB
Hallo Ajax-Gott!
Da du ja alles kannst und weißt, wäre es für dich vielleicht möglich, einem anderen Menschen auch nur im geringsten helfen zu versuchen?
Meinst du ganz im ernst, dass ich hier gefragt hätte, wenn die möglichkeit bestanden hätte, mein problem selbst zu lösen?
Hi,
welches Ajax-Tutorial hast du durch gearbeitet?
~dave
Hi,
welches Ajax-Tutorial hast du durch gearbeitet?
~dave
Da ich mich mit Javascript PHP usw. eig schon ganz gut auskenne habe ich nur nach der direkten Ajax funktion gegooglet, da ich dachte, ich versteh das Script dann selbst.
Aber da ich einfach überfordert bin, dachte ich mir, ich könnte ja mal das nette Selfhtml Forum fragen.
Naja, hab hier 3 mal schon fragen gestellt und nie ne antwort bekommen. Ich denke, ich suche mir ein anderes Forum
Hallo Ajax-Gott!
Da du ja alles kannst und weißt, wäre es für dich vielleicht möglich, einem anderen Menschen auch nur im geringsten helfen zu versuchen?
Er hat nicht gesagt, dass ER es besser könnte, nur, dass Du Dich erstmal mit den Grundlagen auseinander setzen solltest.
Wenn man ein Haus bauen möchte, fängt man auch mit den Grundlagen an und beschäftigt sich damit, wie das geht. Nur in der Programmierung wollen das viele nicht. Da wird dann ein Haufen Steine hingeworfen und andere sollen sagen, warum da keine Tür reinpasst...
In dem Sinne. Willkommen bei *SELF*html ;)
Hallo jus2,
kennst du https://developer.mozilla.org/en/AJAX?
> function chatwrite() {
> if(document.getElementById("chatwriteinput").value.substr(document.getElementById("chatwriteinput").value.length - 1, 1) == "\n") {
hast du dir schon mal den String angesehen? Wird die Bedingung jemals true?
Dieser code hat nur leider keine Funktion.
und wie äußert sich das? Wird er denn überhaupt aufgerufen?
Gruß, Jürgen
Hallo Jürgen,
Ja, er wird true, wenn ich ein Absatz in das textarea schreibe.
Habe das schon testen können, als ich noch das Forumlar benutzte und dieses mit javascript abgesendet habe.
Die funktion wird onkeyup ausgeführt.
Mit "keine Funktion" meine ich, dass in der aufgerufenen php datei
<?php
echo "php ausgabe test";
?>
steht.
Aber dieser Text wird nicht in die textarea übernommen.
Vielen Dank für deine Antwort
viele Grüße, jus2
Hallo jus2,
außer das in "open" der dritte Parameter fehlt, kann ich dir auch nicht sagen, wo da der Fehler steckt. Hast du es schon mit debuggen versucht, also "strategische" alerts eingebaut?
Gruß, Jürgen
Hallo jus2,
außer das in "open" der dritte Parameter fehlt, kann ich dir auch nicht sagen, wo da der Fehler steckt. Hast du es schon mit debuggen versucht, also "strategische" alerts eingebaut?
Gruß, Jürgen
Ja, ich habe mit alerts rumgespielt, doch geben sie egal wo sie stehen desn exakt selben text aus.
Habe Dir eine E-Mail geschickt, vielleicht kannst du mir daraf schnell antworten.
Das Ajax Tutorial habe ich gelesen, jetzt vertehe ich das Script wenigstens, allerdings finde ich den Fehler trotzdem nicht
Vielen Dank, jus2
Hi,
Dieser code hat nur leider keine Funktion.
Hast du mal in die JavaScript-Fehlerkonsole geschaut?
MfG ChrisB
Hi,
Dieser code hat nur leider keine Funktion.
Hast du mal in die JavaScript-Fehlerkonsole geschaut?
MfG ChrisB
Ja, Firebug (Firefox addon) und die Fehlerkonsole zeigen keine Fehler an.
Viele Grüße, jus2
Hi,
bitte sinnvoll zitieren - das, worauf du dich konkret beziehst, und nicht einfach alles.
Ja, Firebug (Firefox addon) und die Fehlerkonsole zeigen keine Fehler an.
Hast du denn verfiziert, dass deine Funktion überhaupt aufgerufen wird?
MfG ChrisB
Ja, die Funktion wird aufgerufen.
Viele Grüße, jus2
Hi,
Ja, die Funktion wird aufgerufen.
Was sagt Firebug dazu, im Netzwerk-Panel - wird ein Request an den Server geschickt, und wie lautet die Antwort (Statuscode und Inhalt)?
MfG ChrisB
Firebug meldet:
GET http://localhost/Revolutionx/php/post/chat_send.php 403 Forbidden
Viele Güße, jus2
Edit: damn, ich hab was gefunden.
Weißt du, wie ich mit .htaccess eine datei in einem verzeichnis freigebe, die anderen generell sperre?
Hi,
Firebug meldet:
GET http://localhost/Revolutionx/php/post/chat_send.php 403 Forbidden
Siehst du - Debuggen ist gar nicht so schwer, wenn man nur mal ein bisschen nach Informationen sucht, anstatt sich hinzustellen und zu sagen "funzt nich" ...
Weißt du, wie ich mit .htaccess eine datei in einem verzeichnis freigebe, die anderen generell sperre?
Files-Direktive, sowieso Satisfy.
MfG ChrisB
Files-Direktive, sowieso Satisfy.
Gesundheit
Wie bitte?
Habe nach meiner .htaccess frage auch schon ewig gesucht nd rein garnix gefunden
Hi,
Files-Direktive, sowieso Satisfy.
Gesundheit
Wie bitte?
Habe nach meiner .htaccess frage auch schon ewig gesucht nd rein garnix gefunden
.htaccess dient zur Konfiguration des Apache Webservers, also findest du Infos darüber logischerweise in dessen Dokumentation.
http://httpd.apache.org/docs/2.2/de/mod/directives.html
MfG ChrisB
Ok, hatte mich soweit erstmal nur per .htaccess selbst ausgesperrt.
Ich bekomme nun den richtigen content in meine textarea.
jetzt wäre nur als letztes noch meine frage, wie ich die php aufrufe, ohne dass ich ne rückgabe bekomme oder gar etwas am value ändere.
Hallo jus2,
jetzt wäre nur als letztes noch meine frage, wie ich die php aufrufe, ohne dass ich ne rückgabe bekomme oder gar etwas am value ändere.
du wirst immer eine Rückgabe bekommen, aber es zwingt dich niemand, sie auch zu verwerten.
Gruß, Jürgen
Hallo,> Hallo jus2,
jetzt wäre nur als letztes noch meine frage, wie ich die php aufrufe, ohne dass ich ne rückgabe bekomme oder gar etwas am value ändere.
du wirst immer eine Rückgabe bekommen, aber es zwingt dich niemand, sie auch zu verwerten.
Wobei ich ich die Antwort schon auswerten würde, damit dein Script anzeigen kann, welche Zeilen den jetzt auch wirklich gesendet wurden und im Fehlerfall den Nutzer benachrichtigen kann bzw. den Text noch einmal senden kann. Einfach einen Request an der Server zu schicken und dann zu glauben, dass dieser den Text jetzt ja auch haben muss, wäre vielleicht etwas naiv.
Viele Grüße Novi
Ok, danke für eure hilfe
Viele Grüße, jus2