JavaScript Mit Ajax mehrere Reports laden

gfeschu

Ensign
Registriert
Aug. 2010
Beiträge
147
Hallo zusammen.

Gibt mal wieder ein kleines Problem. Ich arbeite mit einem DMS (Document Management System). Da gibts WebReports mit denen man verschiedene Dinge ausführen kann. Das Resultat kann man entweder mit einem Iframe (unschöne Lösung) oder mit Ajax in die benutzerdefinierte Ansicht reinladen.

Hier der Code den ich verwende:

Code:
<script type="text/javascript">


function loaddiv(divname, url)
{
  url = encodeURI(url);
  var result = document.getElementById(divname);
  result.innerHTML = '<div height="100" padding="3" align="left"><br /><img src="http://demodemo.de/load-blue.gif" /></div>';

  if (window.XMLHttpRequest) 
  {
   req = new XMLHttpRequest();
  }

  else if (window.ActiveXObject) 
  {
    try 
    {
      if (oXmlHttp == null) 
      {
        oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      else 
      {
        oXmlHttp.abort();
      }
    }
    catch (e) 
    {
      try 
      {
        oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (oc) 
      {
        oXmlHttp = null;
      }
    }
  }

  if (req != undefined) 
  {
    req.onreadystatechange = function() {UrlToDivDone(url, divname);};
    req.open("GET", url, true);
    req.send("");
  }

  return;
}


function UrlToDivDone(url, divname) 
{
  var result = document.getElementById(divname);

  if (req.readyState == 4) 
  {
    // only if req is "loaded"
    if (req.status == 200) 
    { 
      // only if "OK"
      result.innerHTML = req.responseText;
     } 
    else 
    {
      result.innerHTML = " Error:\n"+ req.status + "\n" +req.statusText + "<br />";
    }
  }
}
</script>

Dann nachdem ich die Divs generiert habe im Code (also zuunterst) steht noch folgendes:

Code:
<script type="text/javascript">

		var wrmajor = '1234567';
		url1 = "https://demodemo.de?func=ll&objId=" + wrmajor + "&objAction=RunReport";
		loaddiv('navitext',url1);
	
	</script>

Das funktioniert alles soweit so gut.
Sobald ich einen zweiten Report laden will mit Ajax bockts rum.
Im IE wird beim einten (den oberen der beiden) nur noch die warteschlaufe angezeigt und beim anderen die richtigen Werte.
Beim FF zeigts bei beiden die gleichen Werte an.

Was ist hier falsch? Alle Angaben sind korrekt, habe ich mehrmals überprüft.

Kann mir jemand helfen, oder ist das zu speziefisch? :)


Greez gfeschu
 
Habe mit Jquery leider noch nicht so viel Ahnung.

Kapiert denn sonst niemand was ich genau machen möchte, bzw was das Problem ist? :)
 
Ehrlich gesagt verstehe ich das Problem nicht und zoz hat schon Recht damit, dass es sehr frickelig ist. Wenn schon, dann solltest du die ganze XHR-Logik mal sauber kapseln und von der DOM-Manipulation trennen. Das wuerde dir jQuery eben abnehmen und du koenntest auch (in der Regel) davon ausgehen, dass eventuelle Fehler nicht vom Browser oder irgendwelchen XHR-Details abhaengen.

Danach kannst du dann nochmal genau beschreiben, was bei welchem Aufruf schief geht.

Ansonsten kann ich nur sagen, dass viele Ajax-Probleme (auch hier im Forum) daher kommen, dass die Leute die Closures in JS nicht verstanden haben und es daher Probleme bei den Callbacks gibt. Besser kann ich da im Moment nicht helfen, sorry.
 

Ähnliche Themen

Antworten
2
Aufrufe
714
Antworten
6
Aufrufe
1.610
Antworten
10
Aufrufe
1.655
M
Antworten
21
Aufrufe
5.546
Mr. Snoot
M
Zurück
Oben