AJAX Problem, Firefox mag nicht so richtig

Hallo und einen wunderschönen guten Abend,

ich hatte damals ein Ajax Script geschrieben was mir zu einer PLZ die entsprechenden Ortschaften ausgibt, nun habe ich festgestellt das es im Firefox und Mozilla nicht funktioniert im IE tut es das.

Da ich mal davon ausgehe das der Fehler im Javascript teil liegt, poste ich Ihn mal mit hier rein.

Code:
	      var xmlHttp = false;
	    	try {
	    		xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	    	}
	    	catch(e){
	    		try {
	    		  xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
	    		}
	    		catch(e) {
	    		  xmlHttp  = false;
	    		}
	    	}
	    	if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
	    		xmlHttp = new XMLHttpRequest();
	    	}
    	  
	      function loadData()
	    	{
	    		if (xmlHttp) {
	    		  xmlHttp.open('POST', 'content/func_getOrt.func.php', true);
	    		  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    		  xmlHttp.send('txtPlz='+document.form.txtPlz.value);
	    		  xmlHttp.onreadystatechange = function (){
	    		    if (xmlHttp.readyState == 4) {
	    		      document.getElementById("showOrt").innerHTML = unescape(xmlHttp.responseText);
	    		    }
	    		  };
	    		}
	    	}

Im Script was aufgerufen wird, wird einfach ein Datenbank-Abfrage erstellt und aus den gefunden Datensätzen ein Dropdown erstellt. Im IE wird der wert beim absenden des Formulars übergeben aber im Firefox und Co ist der Wert leer :(

schonmal danke im Vorraus
 
Hallo,

vertausch mal den Aufruf von xmlHttp.send mit der Zuweisung an xmlHttp.onreadystatechange. Möglicherweise wurde im Firefox die Anfrage schon abgearbeitet, bevor die Zuweisung überhaupt geschieht.

Grüße,
Matthias
 
Ich kann da nichts fehlerhaftes entdecken.
Bist du sicher, dass das Element "showOrt" wirklich diese ID trägt, und nicht etwa das name-Attribut?
Was sagt die Javascript-Konsole?
 
Guten Morgen,

hier ist der Aufruf im Formular

PHP:
<span id='showOrt'><b><?=$_POST['selOrt'];?></b></span>

und das sagt mir die Javascript Console aber da versteh ich gerade null davon

Fehler: uncaught exception: [Exception... "Component returned failure code: 0x804b000f [nsIXMLHttpRequest.setRequestHeader]" nsresult: "0x804b000f (<unknown>)" location: "JS frame :: http://community.zanzaro.de/index.php?site=registrierung :: loadData :: line 28" data: no]
 
Wenn ich das tausche dann Funktioniert das Script gar nicht mehr, vorher war es ja nur so das, dass Formular Element zwar eingeblendet wird, aber wenn das Formular versendet wird, dann hat das Formularfeld war mit AJAX eingeblendet wird keinen Wert. Im IE schon *grml*

Vllt. hilft das noch weiter, dass ist der Aufruf der Funktion loadData() in der Funktion wird einfach nur Überprüft ob die PLZ 5 stellen hat oder nicht

Code:
	      var formfeld="";
	      var maxlang=5;
	      
	      function CheckPLZ()	
	      {
	        if (document.form.txtPlz.value.length > maxlang)
	        {
	          document.form.txtPlz.value = formfeld;
	          return;
	        }
	        else
	        {
	          formfeld = document.form.txtPlz.value;
	          loadData();
	      	}
	      }
 
Zuletzt bearbeitet:
Ich hab mal ein wenig gegoogelt, es könnte sein, dass das Problem darin besteht, dass du immer dasselbe Request-Objekt verwendest.

Versuche entweder dies:vor dem open()...
Code:
xmlHttp.abort()
...oder jenes:
Erstelle bei jedem Aufruf von loadData() ein neues Request-Objekt.
 
Hallo, hatte den letzten Tag keine Zeit zum testen gehabt. Funktionieren tut es leider immer noch nicht nur die Fehlermeldung in der JavascriptKonsole ist verschwunden :( ich glaub ich sollte das nochmal neuprogrammieren :(
 
Ich habe das Script nochmal neugeschrieben ohne jeglichen schnickschnack und nun geht es. Der Javascript Code ist der Selbe und der HTML Code auch ... naja wer weiß an was es gelegen hat.

Dennoch Danke für die Aktive mithilfe.

p.S. Ich glaub ich hab ne ziehmlich gute Quote meine Probleme selbst zulösen :D
 

Neue Beiträge

Zurück