Problem IE mit Ajax Klasse (Prototype basierend)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem IE mit Ajax Klasse (Prototype basierend)

    Hallo Leute,

    bin fast am verzweifeln. Ich hab eine Javascript Klasse (mit Prototype) für Ajax-Calls. Dabei wird über einen Klick auf einen Button zusätzliche Infos aus der DB geholt und die Tabellenzeile gegen eine neue ausgetauscht.

    Hab alles in ner einzelnen Datei getestet. Es läuft sowohl im FF als auch im IE (6 und 7). Nachdem ich aber alles in meine Anwendung eingebaut habe, läuft's nur noch im FF und der IE streikt. Fehlermeldung gibt's aber keine.

    Ich hab bewußt im Vorfeld alle JS-Anweisungen die in der eigentlichen Anwendung vorkommen auch in der Test-Datei mit eingebunden.

    Nachfolgend mal der Source der JS-Klasse:

    Code:
    var AJAXTable = Class.create();
    
    AJAXTable.prototype = {
        initialize: function(element, callback_fnc, id_name) {
            this.id = element;
            this.callback = callback_fnc;
            this.element = $(id_name + '_' + element);
            this.pars = this.constructPars();
            this.url = 'ajax.php';
            this.forceRequest();
        },
    
        constructPars: function() {
            return 'function=' + this.callback + '&args=' + this.id + '&' + ENGINEsessID;
        },
    
        forceRequest: function() {
            if(this.element.childNodes.length == 5) {
                this.update_child_node = 1;
            } else {
                this.update_child_node = 3;
            }
    
            var myAjax = new Ajax.Request(this.url,
            {
             method: 'post',
             parameters: this.pars,
             onFailure: this.errorAlert,
             onLoading: this.loadingDataProcess.bindAsEventListener(this),
             onComplete: this.updateFileList.bindAsEventListener(this)
            });
    
        },
    
        updateFileList: function(originalRequest) {
            new Insertion.Before(this.element, originalRequest.responseText);
        	this.element.parentNode.removeChild(this.element);
        },
    
        loadingDataProcess: function() {
    
            this.element.childNodes[this.update_child_node].innerHTML = "<img src=\"" + ac_theme_url + "/system_spinner.gif\" border=\"0\" align=\"absmiddle\" />Loading Data...";
        },
    
        errorAlert: function(t) {
            alert('Error ' + t.status + ' -- ' + t.statusText);
        }
    }
    Ich hab keine Ahnung mehr, warum es in der Testdatei klappt, in der eigentlichen Anwendung dann nicht mehr. Debuggen mit alert hat leider irgendwie nix gebracht. Anscheinend läuft's bis zum Ajax-Call und danach ist Ende. Die Spinner-Grafik wird angezeigt.

    Könnt Ihr Euch das mal ansehen? Ist mein erster Versuch einer eigenen JS-Klasse mit Prototype.

    Vielen Dank für Eure Hilfe...

    Gruß
    BuddyB

  • #2
    das kann vermutlich an den browser-cache liegen.

    ich könnte nicht genau feststellen was du als callbak-funktion benutzt,
    aber versuch bitte diese function

    constructPars: function() {
    return 'function=' + this.callback + '&args=' + this.id + '&' + ENGINEsessID;
    },

    so zu ändern

    constructPars: function() {
    return 'function=' + this.callback + '&args=' + this.id + '&' + ENGINEsessID+'&rand='+Math.random();
    },
    Slava
    bituniverse.com

    Kommentar


    • #3
      Dank Dir für den Tipp.

      Der Fehler lag wo anders. Hab's gefunden.

      Die Antwort per PHP hatte ich mit
      PHP-Code:
      header("Content-type: text/html; charset=".$lang['charset']); 
      formatiert.

      Hab's rausgenommen und es hat funktioniert.... Blöder Fehler

      Bis bald

      Gruß
      BuddyB

      Kommentar

      Lädt...
      X