Moin,
ich brauche zahlreiche requestObjecte für Ajax. Damit sie sich nicht gegenseitig stören, sollen sie verschiedene Namwen haben, aber mit einer zentralen Funktion erzeugt werden.
Wie übergebe ich der Funktion den gewünschten Namen? So geht's nicht, das Object ist anschließend undefined:
function makeRequestObject( requestName ) {
alert( "hier makeRequestObject (" +requestName +") in standard.js" );
if (window.XMLHttpRequest) {
requestName = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
requestName = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
}
catch (e) {
try {
requestName = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
}
catch (e) {}
}
}
// überprüfen, ob Request erzeugt wurde
if (!requestName) {
alert("Kann keine XMLHTTP-Instanz fuer " +requestName +" erzeugen");
}
}
...
var p510_request; makeRequestObject( p510_request ); // makeRequestObject => in standard.js
Mache ich es so:
var p510_request = new Object();
makeRequestObject( p510_request ); // makeRequestObject => in standard.js
var TID = 0;
function holeVeranstaltung() {
// TID ist vorhandene Veranstaltung, nicht erneut senden
var url = "500/p510lm.php?TID=" +TID +"&lg=[lg]";
alert( url );
p510_request.open('post', url, true); // Request öffnen
p510_request.send(null); // Request senden
p510_request.onreadystatechange = zeigeVeranstaltung; // Request auswerten
}
kommt die Meldung "TypeError: p510_request.open is not a function"
Linuchs