Passer un tableau en paramètre d'une fonction javascript [Résolu]

Messages postés
2
Date d'inscription
lundi 27 mars 2006
Dernière intervention
28 mars 2007
- - Dernière réponse : cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
- 28 mars 2007 à 11:10
Bonjour,

Je dois rendre dynamique les parties de codes qui sont en gras, car mon but est de les remplir avec un requête sql à la fin.
<script type= "text/javascript">
           var g = new MWJ_graph(700,300,MWJ_stacked,true,false);
           g.addDataSet('<% =rscamem(25)%>','', [90,90,85,63,90,85] );
           g.addDataSet('<% =rscamem(26)%>','',[10,10,15,37,10,15]);
           g.setTitles('','','%');
           g.setXAxis('Frais Financier','Produits financiers','Frais personnel','Charges récupérées','Produit,'Autres');            
           g.setYAxis(10);
           g.buildGraph();
       </script> 
Voici une des fonction derrières
this.setXAxis = function (){
  //je vous passe le blabla
}

Vu que je ne connais pas le nombre de champs qui sera générer par ma requête.

Je ne peux pas faire
g.setXAxis(champ1 , champ2,champ3,champ4,champ5,champ6); 

J'ai tout premièrement essayé de les concaténer et de passer une string 
var test =[10,10,15,37,10,15]
g.addDataSet('<% =rscamem(26)%>','',test);
 Cela n'a pas fonctionné

Sinon je n'arrive pas à trouver comment passer une vecteur en paramètre, en c++ c'est facile tu utilises un pointeur, mais je suis perdue en javascript,
Voici ce que j'ai essayé
 var test=new Array(6);
           test[0]='Frais Financier'
           test[1]='Produits financiers'
           test[2]='Frais personnel'
           test[3]='Charges récupérées'
           test[4]='Produit et accessoires'
           test[5]='Autres'
           g.setXAxis.apply(this,test);
           g.setXAxis.apphy(test);
           g.setXAxis(test);

Sinon peut-être qu'il y a une autre façon de concaténer les champs, mais je ne vois pas comment.

Merci beaucoup de votre aide à l'avance.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
2
Merci
Bonjour,

on va oublier la POO, pour l'exemple.

<Script    type="Text/JavaScript">

function test1(toto)
{
    for ( var n=0;n<toto.length;n++ )
    {
        alert( toto[n]    );
    }
}

var titi=new Array("a","b");
test1(titi);
test1(['c','d']);

function test2()
{
    for ( var n=0;

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
2
Date d'inscription
lundi 27 mars 2006
Dernière intervention
28 mars 2007
0
Merci
Merci beaucoup,

Je n'ai eu besoin que de modifier l'entête de mes fonctions l'entête "toto" pour pouvoir passer mon vecteur en paramètre en rendre mon site dynamique.

this.setXAxis = function ( toto ){
  //je vous passe le blabla
}

Mais dans ta 2ième partie de solution comment pourrais-je concaténer mes arguments étant donné que je ne connais pas leur nombre?
exemple:
test2(  for(i =0;i<toto.length();i++){toto[i]+','})
 
De toute façon la première solution fonctionne. Je suis seulement curieuse. 
Merci beaucoup.
Commenter la réponse de brumara
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
0
Merci
>>comment pourrais-je concaténer mes arguments
    on pourrait aussi effectivement, et les éclater avant utilisation.
    ( mais bof car 2 traitements à faire )

    var res="";
    for ( var n=0;n<limite;n++ )
    {
       res+=poste[n]+"\t");
    }
    passer res.substr(0,res.length-1);
    et dans la fonction faire un split sur "\t"
  


>>étant donné que je ne connais pas leur nombre
    leur nombre c'est la taille du tableau
       toto.length si un tableau est passé
       arguments.lengts si on exploite le tableau des paramètres passés
    ou alors je n'ai pas compris ?




<hr />



Cordialement            Bul    
Commenter la réponse de cs_bultez

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.