kostenloser Webspace werbefrei: lima-city


Ajax und JavaScript - Kann keine Parameter in einer Funktion

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    squid

    Kostenloser Webspace von squid

    squid hat kostenlosen Webspace.

    Hi
    ich habe einen kleinen Code von einer Webseite über Ajax geholt und will ihn nun in meine einbauen. Der Code lautet wie folgt:
    var request = false;
    
    	// Request senden
    	function setRequest(docurl, divid) {
    		// Request erzeugen
    		if (window.XMLHttpRequest) {
    			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
    		} else if (window.ActiveXObject) {
    			try {
    				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
    			} catch (e) {
    				try {
    					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
    				} catch (e) {}
    			}
    		}
    
    		// überprüfen, ob Request erzeugt wurde
    		if (!request) {
    			alert("Kann keine XMLHTTP-Instanz erzeugen");
    			return false;
    		} else {
    			var url = docurl;
    			// Request öffnen
    			request.open('post', url, true);
    			// Request senden
    			request.send(null);
    			// Request auswerten
    			request.onreadystatechange = interpretRequest;
    		}
    	}
    
    	// Request auswerten
    	function interpretRequest() {
    		switch (request.readyState) {
    			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
    			case 4:
    				if (request.status != 200) {
    					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
    				} else {
    					var content = request.responseText;
    					// den Inhalt des Requests in das <div> schreiben
    					document.getElementById('filelist_leftbar_content').innerHTML = content;
    				}
    				break;
    			default:
    				break;
    		}
    	}

    Er funktioniert problemlos, jetzt soll aber die Funktion des Öfteren verwendet werden, somit soll die ID des Divs, in den der Inhalt der aufgerufenen Datei eingefügt werden soll, frei definierbar sein. Daher ist bei der ersten Funktion einer der Parameter "divid".
    Die erste verwendet allerdings auch die zweite Funktion, somit muss ich jetzt irgendwie das "divid" an die zweite Funktion übergeben.
    Wenn ich jetzt aber versuche der zweiten Funktion den Parameter divid zu geben, funktioniert das Script nicht mehr, weiß jemand woran das liegt?

    Folgende Zeilen wurden geändert:

    29: request.onreadystatechange = interpretRequest[COLOR="#FF0000"]('divid')[/COLOR];
    34: function interpretRequest([COLOR="#FF0000"]divid[/COLOR]) {
    43: document.getElementById([COLOR="#FF0000"]divid[/COLOR]).innerHTML = content;
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. request.onreadystatechange = interpretRequest

    =öffne die function interpretrequest wenn sich der status der anfrage ändert (=eine Antwort kommt)
    request.onreadystatechange = interpretReques(anyvar)

    =übergebe das Ergebniss der funktion interpretRequest an request.onreadystatechange

    entweder arbeitest du mit einer globalen var...
    ...oder schau mal hier:

    Mini AJAX



    Beitrag zuletzt geändert: 3.9.2011 5:35:13 von simuliertes
  4. Autor dieses Themas

    squid

    Kostenloser Webspace von squid

    squid hat kostenlosen Webspace.

    Ich habs mal mit globalen Variablen probiert, aber nicht richtig hingekriegt. Egal, ich hab die zweite Funktion zu einer anonymen Funktion innerhalb der Ersten umdefiniert, jetzt funktioniert es.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!