Page 1 sur 1

Passage d'arguments inconnus à une autre fonction

Posté : 05 juin 2007, 15:33
par delcedo galaxialord
Bonjour !

J'aimerai envoyer les arguments d'une fonction à une autre fonction, comment faire ?
Voici le problème en image :

Code : Tout sélectionner

function f_a(){ f_b(); } function f_b(){ for(var i = 0; i < f_b.arguments.length; i++) // action } // Appel f_a('Auriez','vous','une','solution','a','ce',problème','?');
Sachant que le nombre d'arguments de f_a n'est pas toujours le même (et oui :-p)

Un volontaire ? :-)

Merci beaucoup !

Re: Passage d'arguments inconnus à une autre fonction

Posté : 05 juin 2007, 16:48
par Snoops
Bonjour !

J'aimerai envoyer les arguments d'une fonction à une autre fonction, comment faire ?
Voici le problème en image :

Code : Tout sélectionner

function f_a(){ f_b(); } function f_b(){ for(var i = 0; i < f_b.arguments.length; i++) // action } // Appel f_a('Auriez','vous','une','solution','a','ce',problème','?');
Sachant que le nombre d'arguments de f_a n'est pas toujours le même (et oui :-p)

Un volontaire ? :-)

Merci beaucoup !
Passage par un tableau d'arguments => 1 seule variable a passer en parametre a chaque fonction.
A toi de bien écrire tes tableaux afin de bien les réexploiter dans f_b();

Posté : 05 juin 2007, 16:58
par Shrell
La méthode apply() fait ce que tu veux
je m'en sers dans ma fonction d'appel AJAX pour appeler la fonction adéquate pour traiter les retours et lui passer des arguments.

Code : Tout sélectionner

function loadXMLDoc(url,fonction) { req = false; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req) { var argumentsAPasser = new Array(); if(arguments.length > 2) { for(var i = 2; i < arguments.length; i++) { argumentsAPasser.push(arguments[i]); } } req.onreadystatechange = function() { fonction.apply(null, argumentsAPasser); }; req.open("GET", url, true); req.send(null); } }
A appeler avec un code du style:
<a href="javascript: loadXMLDoc('monfichier.php', traitement, 'argument1', 'argument2');">cliquez ici</a>
A toi de l'adapter à tes besoins ;)

Posté : 05 juin 2007, 23:29
par delcedo galaxialord
Merci beaucoup !

J'ai changé mes fonctions afin de faire passer mes paramètres inconnus en tableau, c'est pas exactement ce que je voulais mais ca marche c'est ce qui compte :-)

Résolu !