[AJAX] Befehl wird asugeführt aber keine optische Änderung

NudelMC

Well-known member
ID: 46722
L
16 Juni 2006
178
5
Sooo teil 2 :)

Ich hab nun mein code soweit fertig.
wowraid.nudelmc.de/add_account.php

Wenn alles richtig eingegeben ist kann man den Button klicken.
Wenn dies Passiert werden die Daten in die DB geschrieben, das funktioniert.
Aller dings wird die entsprechende IF nicht erreicht um eine erfolgsmeldung auszu geben.

Ich bin ein bisschen ratlos ?!

Hier der Code:


Verarbeitungs Funktion,

PHP:
          XMLHttpRequestObject.open("GET", dataSource);
wird ausgeführt, die Datei add_account_confirm.php wird aufgerufen und richtig ausgeführt, db einträge werden gemacht.

PHP:
 var XMLHttpRequestObject = false;
      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }

      var iuser=0;
      var iemail=0;
      var ipass=0;

      function getData(dataSource, feld2)
      {
      alert('getData');
        if(XMLHttpRequestObject) {
          XMLHttpRequestObject.open("GET", dataSource);

          XMLHttpRequestObject.onreadystatechange = function()
          {
            if (XMLHttpRequestObject.readyState == 4 &&
              XMLHttpRequestObject.status == 200)
            {
                if(feld2=="email"){
					var emailDiv = document.getElementById("emailDiv");
                		if(XMLHttpRequestObject.responseText=="ok"){
                            iemail = 1;
                            emailDiv.innerHTML="<div></div>";
                            checkAll();
                    	}else{
                            emailDiv.innerHTML =
                            "<div>" + XMLHttpRequestObject.responseText +"</div>";
                            document.forms[0].elements['Button'].disabled = true;
                            iemail=0;
                            checkAll();
                   		}

                }else if(feld2=="username"){
					var targetDiv = document.getElementById("targetDiv");
                		if(XMLHttpRequestObject.responseText=="ok"){
                            iuser = 1;
                            targetDiv.innerHTML="<div></div>";
                            checkAll();
                  	 	 }else{
                            targetDiv.innerHTML =
                            "<div>" + XMLHttpRequestObject.responseText +"</div>";
                            document.forms[0].elements['Button'].disabled = true;
                            iuser=0;
                            checkAll();
                  	  }

                }else if(feld2=="passwort"){
					ipass=1;
					checkAll();
                }else if(feld2=="submit"){
                 alert('bis hier');
                 var table = document.getElementById("table");
                 table.innerHTML="<tr><td>Vielen Dank für deine Anmeldung, du wirst in kürze freigeschalten</td></tr>";
                }
             }else{
             }
           }

          XMLHttpRequestObject.send(null);
        }
      }


hier der Aufruf (geht auch)
PHP:
		function absenden(username, email, passwort)
		{
		    document.forms[0].elements['Button'].disabled = true;
            var loading = document.getElementById("loadingDiv");
            loading.innerHTML="<img src=images/loading.gif>";
getData("add_account_confirm.php?username=" + username.value + "&passwort=" + passwort.value + "&email=" + email.value + "&step=add", 'submit');

funktioniert eigentlich alles nur wird
PHP:
 }else if(feld2=="submit"){
                 alert('bis hier');
                 var table = document.getElementById("table");
                 table.innerHTML="<tr><td>Vielen Dank für deine Anmeldung, du wirst in kürze freigeschalten</td></tr>";
                }

nie erreicht ?!

ich weis net warum, wäre dankbar für Hilfe
 
Zuletzt bearbeitet:
hast du denn mal den inhalt von feld2 vor dem if-konstrukt ausgeben lassen?
so wie ich das beim überfliegen gesehen habe stimmt alles, ich würde sagen, dass feld2 eben nie submit ist.
 
Der FireFox hat eine schöne Javascript-Console, die beim Finden von Fehlern ganz nützlich sein kann.

Diese meldet, dass XMLHttpRequestObject.status zum Fehler führt.
Allerdings ist dann mit meinen Weisheiten auch Schluss, weil meine AJAX-Kenntnisse "noch ausbaufähig sind".
 
ich empfehle dir FireBug für Ajax zu nutzen (mache ich auch)
man sieht schön, dass dein Ajax-Backend (scheinbar) die richtigen MEssages zurückliefert, da muss es dann am JS-Backend hängen.
meinst du nicht es würde auch reichen eine Überprüfung des Feldes zu machen bei onBlur ;-) (so mache ich es)