Le probleme est de pouvoir passer en parametre le nom de la fonction pour l'utiliser...
exemple:
Refresh('dossiers/checkfiche',oObj,'tab-fiche','GridView');
ou encore
Refresh('dossiers/checkfiche',oObj,'tab-fiche','MonAutreFonction');
Mais le passage en parametre et l'ecriture de sFunction(sResult.responseText,sResultDiv); ne fonctionne pas
Comment faire ?
Merziiii
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 févr. 2008 à 15:42
>> et il m'affiche bien la chaine que je passe en paramètre
ah....
le nom de la function est passée dans une chaîne ?
plus la même chose alors mais entre nous pourquoi utiliser une chaîne ????
si c'est une chaîne : window[la_chaîne_en_question]();
mais un nom de function n'est pas une chaîne... normalement.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 févr. 2008 à 11:52
Bonjour,
pas tout suivi....
sans parler de ajax, dont on se fiche peut-être ?
le souci est il "pouvoir passer en parametre le nom de la fonction pour l'utiliser" ?
ch'tit exemple... ça baigne
function a()
{ alert("fonction a"); }
function b()
{ alert("fonction b"); }
function c(quoi)
{ quoi(); }
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 11 févr. 2008 à 12:07
Bah justement ça ça marche pas >_< et c'est ce que je lis partout
Pour mon code il me dit sFunction not defined pourtant grace a FireBug, je met une point d'arret et met la souris au dessus du parametre et il m'affiche bien la chaine que je passe en paramètre.
Cela peut il venir de la portée de la fonction ?
Comment declare t-on une fonction globale ? (si ça existe)
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 11 févr. 2008 à 13:15
Salut,
Problème de référence non fermée je pense.
Lors de la construction d'un objet de la classe Refresh, les paramètres (filterUrl,oParam,sResultDiv,sFunction) sont bien connus.
Mais lors de l'appel de la fonction anonyme liée à l'évènement success, ces paramètres n'existent pas dans le contexte d'éxecution de la fonction. Par contre cette fonction est liée à l'instance (surement une de ces propriétés) et si tu fermes la référence sFunction avant l'appel, la valeur de cette variable sera accessible dans le contexte d'éxecution de la fonction.
essayes qqchose comme :
function Refresh(filterUrl,oParam,sResultDiv,sFunction){
filterUrl = application + filterUrl;
myFunction = sFunction; // Fermeture de la référence
myDiv = sResultDiv; // idem
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 11 févr. 2008 à 14:10
Coucou
Je viens d'essayer et c'est une histoire de fou...
Pour le sResultDiv ça marche sans avoir besoin d'utiliser ta "technique".
mais pour la fonction non...
Je cherche sur une autre piste que tu as suggéré...
ou en modifiant le paramètre tt, je sais pas, je ne connais Ext que de nom...
On verra bien
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 11 févr. 2008 à 15:59
Je suis dev php donc c'est ptet ça qui pose probleme...
En gros je fais comme ça en php
function toto($sAlert){
echo $sAlert;
}
function AppelFunc($sFunction,$sTexte){
$sFunction($sTexte);
}
AppelFunc('toto','youpi'); //affiche youpi
On est bien obligé de passer le nom de la fonction sous forme de chaine non ?
Le principe est celui de la variable fonction ou variable fonction
=> http://www.manuelphp.com/php/functions.variable-functions.php Je l'utilise ainsi mais ...j'ai peut être raté un episode à javascript
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 févr. 2008 à 16:17
ah.... en php ?
tu n'est pas en train de mélanger javascript/html et php ?
tu sais comment on cause entre les 2 ?
le php et le javascript ne se déroulent ni sur la même machine,
ni en même temps.
on n'appelle ni une fonction javascript en php, ni une fonction php en javascript.
ajax ou pas.
<hr /> Cordialement Bul «mon Site» «M'écrire»
Et ça fonctionne... je comprends pas bien la raison du pourquoi il faut mettre window donc si tu as l'explication qui va avec je suis preneur
Je crois que je confonds variable et valeur un tit peu ...
Dans ton exemple:
function a()
{ alert("fonction a"); }
function b()
{ alert("fonction b"); }
function c(quoi)
{ quoi(); }
c(a);
c(b);
La variable est le nom de la fonction hors dans mos (bordel) le nom de la fonction depend du bouton ou l'utilisateur clique.
En fait j'aurais pu faire pareil...
C'est vraiment pas pareil que php
Dans Tous les cas un GRAND Merci à vous 2
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 11 févr. 2008 à 16:35
Je faisais juste le parallèle avec php ou on donne le nom de la fonction sous la forme d'un paramètre...
Pensant bien faire j'ai fait "pareil" en js
La communication entre php<=>js est ok
Je n'avais simplement pas vu que ton parametre n'etait pas une chaine sur ton exemple
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Je trouve que c'est très bizar je n'ai vmt pas le reflexe javascript encore
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie