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 :

Comment créer une variable dynamique en js?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Par défaut Comment créer une variable dynamique en js?
    Je cherche une solution, pour générer plusieurs variables à affecter dans ma méthode ajax post (jquery), un peu comme dans php... J'ai pas trouvé de solution concluante. Voici le code en question :
    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
    // partie : photos ajax
    							// En cas de soumission du formulaire des photos
    							//
    							$('#formPhotos').submit(function() {
    								var tab_photos = []; 
    								var nombrePhotos = inc;
    								for (indice=1; indice<=nombrePhotos; indice++ ) {
     
    									// partie critique
    									var variable = 'photo_'+indice = $(this).find("select[name=photo_"+indice+"]").val();
     
    								}
     
    								$.post("ajax_ajouterPhotos.php", {photo_:variable}, function(data) {
    									// ...
     
    								});
    							});

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    heu j'ai pas saisi le coup de la variable ?
    tu veux dire lier du data à un objet ?

    regarde du coté de data() ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Par défaut
    En fait, je voudrais récupérer dans mon formulaire photo, toutes les valeurs de mon input avec comme préfixe "photo_" car il peut y avoir plusieurs photos (photo_1, photo_2, ... photo_n) et les transmettre via $.post().

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben avec les selecteurs de jquery c'est possible ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("input[value^='photo_']")
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Par défaut
    C'est résolu... à vrai dire c'est délicat avec javascript pour générer des variables dynamique. Du coup, j'ai changé pour générer un objet qui stocke les informations pour les photos... Voici ce que j'ai fait, si ça peut être utile :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    $('#formPhotos').submit(function () {
    			var photos = []; 
    			var indice = 1;					
    			var variable = '';
    			// on récupère les inputs du formulaire avec find()
    			while (indice<inc) {
    				photos.push($(this).find("input[name=photo_"+indice+"]").val());
    				indice++;
    			}
    			// on stocke dans une chaîne pour chaque inputs récupérées
    			// les données relatives aux photos
    			var ind=1;			
    			for (var i=0; i<photos.length; i++) {	
    				if (ind==photos.length) {
    					variable+= 'photo_'+ind+':"'+photos[i]+'" ';
    				} else {
    					variable+= 'photo_'+ind+':"'+photos[i]+'", ' ;
    				}
    				ind++;
    			}
     
    			// on crée un objet parametres afin de facilité le transport via ajax	
    			var parametres = {
    				variable:variable
    			};
     
    			// exécution de ma fonction ajax post qui appel le fichier php
    			$.post("ajax_ajouterPhotos.php", parametres, function (data) {
    				// en vérifiant si les données sont envoyées avec succès
    				// on affiche le résultat dans une balise prévue à cet effet
    				if (data!="Ok") {
    					$('#infos').append("<p>Erreur !</p>");
    				}else {
    					$('#infos').append("<p>Chargement effectuée !</p>");
    				}
     
    			});
     
     
    			return false;
    		});
    Merci quand même

  6. #6
    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
    Selon la manière d'organiser ses variables dans le code, il y a en fait nativement la possibilité de faire référence "dynamiquement" aux propriétés d'un objet.

    Imaginons que tu fasses partie des développeurs qui considèrent que « les globâles, c'est mâl. » (dont je suis, bien entendu ^^)

    Tu définis un objet qui va te servir d'espace de noms en quelque sorte :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var V = {
       prop1: "abc",
       prop2: "def",
       prop3: "xyz"
    };
    ..., et tu peux déjà accéder à tes variables en construisant leur identifiant comme une chaine classique. Effectivement, dans ce cas de figure, on a tendance à accéder aux propriétés avec l'opérateur ".", mais en utilisant plutot "[]" on peut alors composer la chaine représentant l'identifiant lors de l'exécution :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var a1 = V.prop1;// "en dur"
    var a2 = V["prop1"];// dynamique, car on aurait pu faire :
    var n = 1;
    var a3 = V["prop" + n];
    Enfin bon, il me semble que dans ton cas, jQuery se chargeant déjà de faire ce qu'il faut en coulisses... ("leeeu professeeeeeur Rolliiiiiin a toujours... " ...clin d'oeil aux connaisseurs )

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

Discussions similaires

  1. [C#] Comment créer une variable globale?
    Par FraktaL dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/05/2017, 14h10
  2. [RaveReport] Comment créer une page dynamiquement
    Par bullrot dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/12/2007, 16h33
  3. Réponses: 8
    Dernier message: 01/06/2007, 16h39
  4. [reports] comment créer une requete dynamiquement
    Par lifeisgood dans le forum Reports
    Réponses: 4
    Dernier message: 31/01/2007, 12h15
  5. [VB.Net] Comment créer une variable ?
    Par Fullmetal82 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/01/2007, 10h26

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