n'abend,
»»» ~~~javascript
var http = null;
var lgname = document.getElementById("name").value;
var lgpw = document.getElementById("pw").value;
function sendRequest(){
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
// ...
na da haben wir doch deinen Fehler.
Zu dem Zeitpunkt, zu dem du name und pw abfrägst, existieren diese noch gar nicht im DOM. Entweder du setzt die beiden Zeilen in die Funktion sendRequest(), oder du holst sie dir im onload handler. (ersteres wird für dich einwandfrei funktionieren)
> Ich weiß, dass es wichtig ist, was du mir gerade erklärt hast. Aber ich bitte dich darum mir zu erklären warum das von mir geschriebene Script nicht funktioniert, weil es einfacher ist.
Dein Fehler lag nicht beim AJAX, sondern im Abrufen der Formularelemente.
Was ich dir über urlencode() erzählt habe ist dennoch wichtig! Es ist kein Aufwand die Funktion von der verlinkten Seite zu kopieren und in deinen Code einzufügen.
> Ich verstehe noch nicht sehr viel von AJAX und mir ist gerade wichtig, dass ich einfache Dinge zuerst verstehe.
Deine Probleme liegen bei Javascript (und hier vielleicht noch beim DOM). AJAX ist nur ein tolles Marketingwort und bedeutet auf Deutsch nicht viel mehr als "holen wir uns doch mittels Javascript einen (String irgendeines Typs vom Server) runter."
> Dann kommen die schwierigen Sachen :-) Ich hoffe du verstehst es :)
Bevor wir zu den schwierigen Sachen kommen, möchte ich dir noch einen Tipp mit auf den Weg geben:
> ~~~html
<div id="footer">
> <label for="name">Loginname: </label><input type="text" name="name" class="login" size="15" id="name">
> <label for="pw"> Passwort: </label><input type="text" name="pw" class="login" size="15" id="pw">
> <input type="button" value="Absenden" class="login" onclick="sendRequest()">
> </div>
ist nicht gerade tolles HTML.
Dadurch, dass du kein Formular benutzt, kann man nach eingabe des Passworts im Passwortfeld nicht einfach [Enter] drücken; man _muss_ auf den [Absenden]-Button klicken.
Etwas schöner wäre vielleicht
<form name="login" action="login.php" method="post" onsubmit="sendRequest(); return false;">
<label for="name">Loginname: </label><input type="text" name="name" class="login" size="15" id="name">
<label for="pw"> Passwort: </label><input type="text" name="pw" class="login" size="15" id="pw">
<input type="submit" value="Absenden" class="login">
</form>
Dein AJAX-gedöns wird nun über den onsubmit-handler aufgerufen und das Absenden des Formulars durch das return false;
unterbunden. Auf diese Weise kannst du das Formular ganz normal abschicken, wenn du Javascript nicht aktiviert hast. (Das Formular kannst du natürlich wieder in dein footer-div packen...)
weiterhin schönen abend...
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|