Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ 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 21/11/2011, 21h35   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Passer une variable d'un côté à un autre

Bonjour tous.
J'espère que vous aller bien

J'ai un problème. Je veux utilisé uploadify pour télécharger des images
Code jquery :
1
2
3
4
5
6
7
8
9
10
11
 
 $('#image_fr').uploadify({
        'uploader'  : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.swf',
        'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page='+page_id,
        'cancelImg' : '../../manager/templates/rives/jquery/uploadify-v2.1.4/cancel.png',
        'folder'    : '../../images/produits/',
		'fileExt'	: '*.jpg; *.gif; *.png',
		'fileDesc'	: 'img',
		'multi'		: false
 
      });
Si vous observez bien, je passe une variable "page_id" dans le fichier uploadify.
Si je mets une valeur fix ca marche.

Aussi, j'ai un formulaire avec un sélect. Quand je change déroule mon menu déroulant j'arive afficher la valeur de value="" comme ceci
Code jquery :
1
2
3
4
 
$("#id_f_page").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

J'aimerais que mon alert ait passer sa valeur de la variable qui est passer dans le fichier uploadify. Ceci de manière à ce que la valeur de ma variable page_id change a chaque fois que je sélectionne une nouvelle valeur de mon menu déroulant
Alors j'ai fait ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<script type="text/javascript">
 
    $(document).ready(function() {
		$("#id_f_page").change(function() {
	   		var page_id = $(this).find("option:selected").val();
		});
 
 
 
      $('#image_fr').uploadify({
        'uploader'  : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.swf',
        'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page_id='+page_id,
        'cancelImg' : '../../manager/templates/rives/jquery/uploadify-v2.1.4/cancel.png',
        'folder'    : '../../images/produits/',
		'fileExt'	: '*.jpg; *.gif; *.png',
		'fileDesc'	: 'img',
		'multi'		: false
 
      });
    });
    </script>
Le problème, c'est que le page_id
Code :
uploadify.php?page_id='+page_id,
ne récupère par la valeur de ceci
Code :
var page_id = $(this).find("option:selected").val();
Pourriez-vous me dire ce que je peux faire?

Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 09h45   #2
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
C'est normal... Dans ta méthode .change tu ne dis pas à uploadify de reprendre ta variable, donc forcément il ne sait pas qu'es ce qu'il doit prendre...

Peut-être comme ça ? :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
//Tu déclare AVANT ton uploadify
$('#image_fr').uploadify({
        'uploader'  : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.swf',
        'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page=0', //valeur par défaut, car ta variable existe pas
        'cancelImg' : '../../manager/templates/rives/jquery/uploadify-v2.1.4/cancel.png',
        'folder'    : '../../images/produits/',
		'fileExt'	: '*.jpg; *.gif; *.png',
		'fileDesc'	: 'img',
		'multi'		: false
 
      });
Ensuite dans ton .change :

Code :
1
2
3
4
5
6
7
8
 
$("#id_f_page").change(function() {
	   		var page_id = $(this).find("option:selected").val();
//Donc ici tu as ta valeur, mais dès que tu sors de ta fonction ta variable n'existe plus.
 
//Avec ceci tu mettra à jour ton attribut script avec le bon lien et la bonne valeur à passer en paramètres.
$('#image_fr').uploadify({'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page='+page_id,});
		});
En espérant que ça t'aide ^^
Cordialement
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 12h47   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Salut, Je te remercie pour ta proposition mais ca ne marche pas.
J'ai exactement fait comme tu me l'as indiqué, mais quad je charge une image il y a trois chargement à la place de une.
Et que je vais voir dans le code, je ne vois pas la vaeur de ?page= qui change
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h00   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Il faudrait peut-être que tu t'interroges sur les notions de scope et de portée des variables.
Une variable déclarée dans une fonction (comme page_id dans ton cas) n'est plus accessible en dehors de cette fonction.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h08   #5
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
oui mais comment faire avec jquery?
Es-ce qu'on peut utiliser un "global"?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h16   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par pierrot10
oui mais comment faire avec jquery?
Ben on peut pas dire que tu as beaucoup d'imagination...
Code :
1
2
3
4
5
6
$(document).ready(function() {
	$("#id_f_page").change(function() {
	   	var page_id = $(this).find("option:selected").val();
	});
...
}


Code :
1
2
3
4
5
6
7
$(document).ready(function() {
	var page_id;
	$("#id_f_page").change(function() {
	   	page_id = $(this).find("option:selected").val();
	});
...
}
Fascinant non ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h32   #7
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Mais je necomprend pas pourquoi on parle de portée de varaible
Code :
1
2
3
4
5
 
  		var page_id = $(this).find("option:selected").val();
			//Donc ici tu as ta valeur, mais dès que tu sors de ta fonction ta variable n'existe plus.
			//Avec ceci tu mettra à jour ton attribut script avec le bon lien et la bonne valeur à passer en paramètres.
			$('#image_fr').uploadify({'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page='+page_id,});
la variable page_id est déclarée dans la fonction et est utilisée en peut plus bas?
Donc ou le problème de portée?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 15h16   #8
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
Essais quelque chose comme ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$(document).ready(function() {
$("#id_f_page").change(function() {
	   	var page_id = $(this).find("option:selected").val();
                $('#image_fr').uploadify = null;
                $('#image_fr').uploadify({
        'uploader'  : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.swf',
        'script'    : '../../manager/templates/rives/jquery/uploadify-v2.1.4/uploadify.php?page='+page_id,
        'cancelImg' : '../../manager/templates/rives/jquery/uploadify-v2.1.4/cancel.png',
        'folder'    : '../../images/produits/',
		'fileExt'	: '*.jpg; *.gif; *.png',
		'fileDesc'	: 'img',
		'multi'		: false
 
      });
	});
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h03.


 
 
 
 
Partenaires

Hébergement Web