Supportnet / Forum / Skripte(PHP,ASP,Perl...)
AJAX geht net
Frage
hallo,
ich habe ein problem mit ajax und zwar habe ich mir eine ajax linkloading engine gebaut die bei anklicken eines links den inhalt einer php seite in einen layer (<div>) darstellt. Soweit die theorie. Die AJAX Enigne ist fertig und der Layer existiert aber wenn der link gedrückt wird kommt nix. Die PHP Datei wurde nochnichtmal aufgerufen.
Hier ein paar Codes:
AJAX Engine :
// JavaScript Document
function check()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
return xmlHttp;
}
function ajaxManager(layer,url)
{
alert(url);
alert(layer);
var conn = check();
conn.onreadystatechange=function()
{
if(conn.readyState==4)
{
alert(conn.responseText);
document.getElementById(layer).innerHtml=conn.responseText;
}
}
conn.open("GET",url,true);
conn.send(null);
}
Link text :
<a href=# onmouseup=ajaxManager('main','taskmanager.php')>Test</a>
Und die PHP datei die aufgerufen werden soll :
<?php
print("<font>Geht</font>");
?>
kp wieso aber ich kriege einen 404 Error wenn die ajax engine versucht die php file aufzurufen
Bitte um hilfe !!
mfg
Fassy91
Antwort 1 von rfb
Zum einen rufst du die PHP nie auf.
Zum anderen ist der HTML-Teil schlicht fehlerhaft, HTML-Attribute gehören in Anführungszeichen.
Zum anderen ist der HTML-Teil schlicht fehlerhaft, HTML-Attribute gehören in Anführungszeichen.
Antwort 2 von Fassy91
jo habe ich aber trotzdem geht es nicht aber wieso ?
mfg
Fassy91
mfg
Fassy91
Antwort 3 von ClemBra
Poste mal den Code in entsprechenden Forum-Tags, mit Anführungszeichen und mit der Definition des Layers.
Nebenbei würde ich nicht onmouseup, sondern onmouseclick verwenden.
Gruß Clemens
Nebenbei würde ich nicht onmouseup, sondern onmouseclick verwenden.
Gruß Clemens
Antwort 4 von Supermax
wenn dann "onclick" und nicht "onmouseclick" ;)
Lass das Script doch mal in Firefox laufen, da gibts eine die "Fehler-Konsole", die einem JavaScript- und CSS-Fehler wunderbar anzeigt.
Lass das Script doch mal in Firefox laufen, da gibts eine die "Fehler-Konsole", die einem JavaScript- und CSS-Fehler wunderbar anzeigt.
Antwort 5 von ClemBra
von mir aus auch das ;-)
Aber gehen denn die Alert-Boxen über dem "var conn = check();"?
Wenn ja, schreibe darunter mal "alert(conn);" Da müsste "[Object]" oder etwas ähnliches erscheinen.
Gruß Clemens
Aber gehen denn die Alert-Boxen über dem "var conn = check();"?
Wenn ja, schreibe darunter mal "alert(conn);" Da müsste "[Object]" oder etwas ähnliches erscheinen.
Gruß Clemens
Antwort 6 von rfb
@ClemBra:
was ändert das? Fassy91 verwendet nirgendwo open(). Wenn die PHP-Datei nicht angefordert wird tut der Server natürlich auch nix.
@Fassy91:
was ändert das? Fassy91 verwendet nirgendwo open(). Wenn die PHP-Datei nicht angefordert wird tut der Server natürlich auch nix.
@Fassy91:
Zitat:
jo habe ich aber trotzdem geht es nicht aber wieso ?
du hast was? "jo" wird hier nicht gebraucht sondern eine vernünftige Fehlerbeschreibung!jo habe ich aber trotzdem geht es nicht aber wieso ?
Antwort 7 von Supermax
Zitat:
@ClemBra:
was ändert das? Fassy91 verwendet nirgendwo open(). Wenn die PHP-Datei nicht angefordert wird tut der Server natürlich auch nix.
@ClemBra:
was ändert das? Fassy91 verwendet nirgendwo open(). Wenn die PHP-Datei nicht angefordert wird tut der Server natürlich auch nix.
Doch, da steht doch
conn.open("GET",url,true);conn.send(null);.Aber wie schon gesagt, die Seite mit dem AJAX-Script drin mal im Firefox aufrufen und die Fehlerkonsole beobachten, wenn das JS einen Fehler hat (es reicht ja schon ein kleiner Tippfehler wie ein vergessenes ; irgendwo), dann wird das hier zuverlässig angezeigt.
Ich verwende schon sehr lange den FF zum debuggen von meinen JS-Applikationen.
Antwort 8 von rfb
hoppla, nehme alles zu open() zurück, behaupte nunmehr der Code sei extrem unübersichtlich, empfehle folgende Lektüre: Galileo Computing: JavaScript und AJAX
Antwort 9 von Supermax
Ich denke der Fehler liegt daran, daß onreadystatechange vor dem open() gesetzt wird. Je nach Implementierung werden die event-handler durch open() unter Umständen wieder zurückgesetzt.
Antwort 10 von Fassy91
also der script geht jetzt *freu*. Aber ich kriege eine 404 Error Page in einem DIV ^^. Er versucht eine Datei zu finden bloss ich weiss nicht welche .
mfg
Fassy91
mfg
Fassy91
Antwort 11 von Fassy91
ok leute danke für euren support ich habe den fehler ich habe die dateien falsch benannt in der funktion wurde mit taskmanager.php rumprobiert aber die datei hiess : tasmanagaer.php das heisst ein k zuwenig!
mfg
Fassy91
mfg
Fassy91
Antwort 12 von ClemBra
... und ein "a" zuviel *duckundweg*

