IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Remplir un Array recursivement


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut Remplir un Array recursivement
    Bonjour,

    Je dois gérer dans ma page des images survollées. Le problème c'est le nombre (environ 50).

    Pour ce faire j'utilise cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    	var tb
    	tb= new Array();
    	for(i=0;i<50;i++){tb[i]=new Image;}
    	tb[0].src="Images/toto_srv.jpg";
    	tb[1].src="Images/toto.jpg";
    	tb[2].src="Images/titi_srv.jpg";
    	tb[3].src="Images/titi.jpg";
    	tb[4]... 
    	function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
    </script>
    Et dans la page html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onmouseover="roll(img1,0)"; onmouseout="roll(img1,1)"><img name="img1" SRC="Images/BTA.jpg"></a>
    Etant donné que mes images ton toujours la même structure, à savoir :
    nomdelimage.jpg -> nomdelimage_srv.jpg
    Je me suis donc dit qu'il y avait surement un moyen de remplir un ligne sur deux de mon array avec le texte contenu dans la ligne précédente pour que :
    nomdelimage_srv.jpg devienne nomdelimage.jpg
    J'ai donc penser à un sytème avec modulo du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (Val in tb) 
    	tb[Val].src= (Val % 2 == 0)? fonction1:fonction2;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (Val in tb) 
    	if(Val % 2 == 0) 
    	{tb[Val].src=...}

    Une idée de comment mettre quelque chose de ce type en place ?

    Merci par avance !
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    est ce qu'il ne faudrait pas utiliser quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (Val in tb)
    if (Val % 2 != 0)
    {
       tb[Val].src= tab[Val-1].substring(0,tab[Val-1].length - 4) + "_srv.jpg"
    }
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    Bon bah j'ai fini par trouver la solution...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
    	var tb
    	tb= new Array();
    	for(i=0;i<2;i++){tb[i]=new Image;}
    	tb[0].src="Images/toto.jpg";
     
    	function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
    	for(Val in tb)
    		if(Val % 2 != 0){
    			tb[Val].src = tb[Val-1].src.substring(0,tb[Val-1].src.length - 4).concat("_srv.jpg");}
     
    </script>
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
    Pourquoi eval ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function roll(img,nb) {
        img.src = tb[nb].src;
    }

  5. #5
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Pourquoi eval ???
    Copier-Coller...

    Merci de me l'avoir fait remarqué...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    eval = la porte ouverte aux catastrophes par injection de codes malveillants

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var tb = [],
    	dossier = "Images/",
    	term1 = "_srv.jpg",
    	term2 = ".jpg",
    	fichiers = ["toto", "titi", "tata"],
    	tbLength = 2 * fichiers.length;
     
    for(var i = 0; i < tbLength; i++){
    	tb[i] = new Image;
    }
     
    for(var i = 0, j = 0; i < tbLength; j++){
    	tb[i++].src = dossier + fichiers[j] + term1;
    	tb[i++].src = dossier + fichiers[j] + term2;
    }
     
    function roll(img,nb){
    	img.src = tb[nb].src;
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Remplir un array()
    Par fourniey dans le forum Langage
    Réponses: 4
    Dernier message: 11/08/2007, 16h59
  2. [MySQL] Remplir un array à partir d'une table
    Par Dauphin dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/06/2007, 07h25
  3. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  4. [VB.NET] Comment remplir un Array
    Par Immobilis dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/11/2005, 23h49
  5. Remplir un array
    Par PrinceMaster77 dans le forum ASP
    Réponses: 11
    Dernier message: 01/04/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo