Zwei Uebergabeparameter fuer showResponse.
Manfred
- javascript
Guten Morgen zusammen,
ich habe eine Frage zum HttpRequest, genauer gesagt zum Response.
In einer Site generiere ich eine Funktion. In dieser Funktion steckt der HttpRequest. Der Funktion teile ich zwei Uebergabeparameter zu. Hier foo und bar genannt.
function HttpRequest(foo, bar) {
new Ajax.Request('/some_url',
{
method:'get',
parameters: {firstParameter: 'foo'}
onSuccess: showResponse,
onFailure: showError,
});
}
function showResponse(transport){
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
}
function showError(){ alert('Something went wrong...') }
Den Parameter foo benoetige ich fuer den Request. Den Parameter bar wuerde ich nun gerne an die Funktion showResponse weitergeben. Doch leider weiss ich nicht, wie ich da vorgehen soll.
Kann ich z. B. schreiben?
...
onSuccess: showResponse( , bar),
...
function showResponse(transport, bar1){
...
Im Netz fand ich bisher keinerlei Hinweise darueber.
Hat jemand einen Tip fuer mich?
MfG
Manfred
Hallo,
function HttpRequest(foo, bar) {
var wrapper = function (transport) {
showResponse(transport, bar);
};
new Ajax.Request('/some_url',
{
method:'get',
parameters: {firstParameter: 'foo'}
onSuccess: wrapper,
onFailure: showError,
});
}
Warum das klappt? Weil wrapper durch die Verschachtelung die Variablen foo und bar einschließt:
http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#closures
Mathias
Hallo Mathias,
hab verstanden.
Die Funktion showReponse als Unterfunktion in der Funktion HttpRequest definieren. Damit erbt sie automatisch die Variablen, die in HttpRequest definiert wurden.
Ich danke Dir fuer den Hinweis.
MfG
Manfred