PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   Problem IE mit Ajax Klasse (Prototype basierend) (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/79361-problem-ie-mit-ajax-klasse-prototype-basierend.html)

BuddyB 17-12-2006 13:49

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

Slava 17-12-2006 19:30

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();
},

BuddyB 17-12-2006 23:45

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 :dontknow:

Bis bald

Gruß
BuddyB


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:54 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG