Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2011, 10h34   #1
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 0
Points : 0
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 :
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) {
									// ...
 
								});
							});
L0101SA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 10h47   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
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
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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 11h07   #3
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 0
Points : 0
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().
L0101SA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 11h10   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
ben avec les selecteurs de jquery c'est possible ...

Code :
$("input[value^='photo_']")
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 15h27   #5
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 0
Points : 0
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 :
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
L0101SA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 19h49   #6
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
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 :
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 :
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 )
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h32.


 
 
 
 
Partenaires

Hébergement Web