Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 20/11/2011, 14h14   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Par défaut Passage de variables hidden dans formulaire

Bonjour,

J'essaye de faire passer des variables hidden dans un formulaire.

Seulement, rien n'y fait, ces dernières ne veulent pas passer étant donné que le submit est fait par un code javascript.


uploader.php

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
  <html>
  <head>
  <!--css du site -->
<link rel="stylesheet" title="Standard" href="/upload/web/css/css.css" type="text/css" media="screen" />
  <!--appel du modtools-->
  <script type="text/javascript" src="/upload/web/js/mootools.js"></script>
    <script type="text/javascript" src="/upload/web/js/Swiff.Uploader.js"></script>
    <script type="text/javascript" src="/upload/web/js/Fx.ProgressBar.js"></script>
    <script type="text/javascript" src="/upload/web/js/FancyUpload2.js"></script>
 
	<script language="javascript">
	window.addEvent('load', function() {
 
	var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {
		url: $('form-demo').action,
		fieldName: 'photoupload',
		path: '/upload/web/js/Swiff.Uploader.swf',
		limitSize: 8 * 1024 * 1024, // 8Mb
		onLoad: function() {
			$('demo-status').removeClass('hide');
			$('demo-fallback').destroy();
		},
		// The changed parts!
		debug: true, // enable logs, uses console.log
		target: 'demo-browse' // the element for the overlay (Flash 10 only)
	});
 
	filter = {'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'};
	swiffy.options.typeFilter = filter;
	/**
	 * Various interactions
	 */
 
	$('demo-browse').addEvent('click', function() {
		/**
		 * Doesn't work anymore with Flash 10: swiffy.browse();
		 * FancyUpload moves the Flash movie as overlay over the link.
		 * (see opeion "target" above)
		 */
		swiffy.browse();
		return false;
	});
 
	/**
	 * The *NEW* way to set the typeFilter, since Flash 10 does not call
	 * swiffy.browse(), we need to change the type manually before the browse-click.
	 */
	$('demo-select-images').addEvent('change', function() {
		var filter = null;
		if (this.checked) {
			filter = {'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'};
		}
		swiffy.options.typeFilter = filter;
	});
 
	$('demo-clear').addEvent('click', function() {
		swiffy.removeFile();
		return false;
	});
 
	$('demo-upload').addEvent('click', function() {
		swiffy.upload();
		return false;
	});
 
});
</script>
 
<!--image viens de moi ou de vous ?-->
<?php 
$id_article = intval($_GET['id_article']); 
$id_type_article = intval($_GET['id_type_article']);
$u_id = intval($_GET['u_id']); 
?>
 
 </head>
 <body>
	<form action="doUpload.php" method="post" enctype="multipart/form-data" id="form-demo">
	<fieldset id="demo-fallback">
		<label for="demo-photoupload">
			<!--variables hidden -->
			<input type="hidden" name="id_article" value="<?php echo $id_article; ?>" />
			<input type="hidden" name="id_type_article" value="<?php echo $id_type_article; ?>" />
			<input type="hidden" name="u_id" value="<?php echo $u_id; ?>" />
			Upload images:
			<input type="file" name="photoupload" id="demo-photoupload" />
		</label>
	</fieldset>
 
	<div id="demo-status" class="hide">
		<p>
			<a href="#" id="demo-browse">Explorer les fichiers</a> |
			<input type="checkbox" id="demo-select-images" checked /> Images uniquement |
			<a href="#" id="demo-clear">Effacer la liste</a> |
			<a href="#" id="demo-upload">Envoyer !</a>
		</p>
		<div>
			<strong class="overall-title">Progression totale</strong><br />
			<img src="/upload/web/images/assets/progress-bar/bar.gif" class="progress overall-progress" />
		</div>
		<div>
			<strong class="current-title">Progression du fichier</strong><br />
			<img src="/upload/web/images/assets/progress-bar/bar.gif" class="progress current-progress" />
		</div>
		<div class="current-text"></div>
	</div>
 
	<ul id="demo-list"></ul>
</form>
</body>
</html>

Sachant que les variables à faire passer sont ici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 
$id_article = intval($_GET['id_article']); 
$id_type_article = intval($_GET['id_type_article']);
$u_id = intval($_GET['u_id']); 
?>
 
 </head>
 <body>
	<form action="doUpload.php" method="post" enctype="multipart/form-data" id="form-demo">
	<fieldset id="demo-fallback">
		<label for="demo-photoupload">
			<!--variables hidden -->
			<input type="hidden" name="id_article" value="<?php echo $id_article; ?>" />
			<input type="hidden" name="id_type_article" value="<?php echo $id_type_article; ?>" />
			<input type="hidden" name="u_id" value="<?php echo $u_id; ?>" />
			Upload images:
			<input type="file" name="photoupload" id="demo-photoupload" />
		</label>
	</fieldset>
La question est donc de savoir comment récupérer ces trois variables dans la page doUpload.php ? Car même après une tentative de récupération via :


Code :
$_id_article = $_POST['id_article'];
La variable est vide.

Par avance, un grand merci à la personne qui réussira à m'expliquer comment procéder.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h54   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Bonjour,

Il te suffit de rajouter un paramètre supplémentaire à swiffy.
Code :
data: // ici tu vas chercher les valeurs de tes ids html que tu sépares avec &
un truc du genre :
Code :
data: 'id_article='+$('id_article').get('value')+'&'+...
Une dernière chose <script type="text/javascript" est devenu : <script type="application/javascript"
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2011, 16h06   #3
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour et merci !

Je vais tester !

Et côté doUpload.php, je pourrai récupérer le $_POST['id_article'] ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 16h11   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par heretik25 Voir le message
Et côté doUpload.php, je pourrai récupérer le $_POST['id_article'] ?
Tu t'y réponds toi-même :
Citation:
Envoyé par heretik25 Voir le message
Seulement, rien n'y fait, ces dernières ne veulent pas passer étant donné que le submit est fait par un code javascript.
Ton script javascript supplante l'attribut action de ton formulaire donc doUpload.php ne devrait rien voir sauf si tu l'appelles dans le javascript en charge de l'upload.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 16h13   #5
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
En mettant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {
		url: $('form-demo').action,
		fieldName: 'photoupload',
		path: '/upload/web/js/Swiff.Uploader.swf',
		limitSize: 8 * 1024 * 1024, // 8Mb
		onLoad: function() {
			$('demo-status').removeClass('hide');
			$('demo-fallback').destroy();
		},
		// The changed parts!
		debug: true, // enable logs, uses console.log
		target: 'demo-browse', // the element for the overlay (Flash 10 only)
		data: 'id_article='+$('id_article').get('value')
	});
L'upload ne fonctionne plus. data doit être positionné sur un secteur précis ?

Merci !
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 16h22   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Je ne connais pas FancyUpload, peut-être que la syntaxe du data: ne lui convient pas. Faudrait voir la doc.
Dans tous les cas pas de position particulière, l'ordre n'importe pas du tout.

Il semblerait qu'il attende un objet dans data:
Code :
{'id_article':$('id_article').get('value'), ... }
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 16h30   #7
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
J'ai cherché sur le web mais n'ai pas trouvé une documentation sur les paramètres que l'on peut passer. Si vous avez un lien, je suis preneur

Qu'entendez-vous par objet ?

EDIT : J'ai trouvé ceci :

Code :
data: (object|string: defaults to null) Key/data values that are sent with the upload requests.
http://digitarald.de/project/fancyupload/


On en parle aussi ici :

http://www.yiiframework.com/forum/in.../page__st__100

J'ai essayé :

Code :
data: {'Submit_Id=':<?php echo "'$id_article'"; ?>}
Malheureusement sans succès, aucune récupération avec

heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 17h54   #8
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

Si tu n'as rien en post, c'est que tes variables ne passent pas ! Je sais, classe

J'utilise ce script, et pour passer les variables, j'ajoute :
Code :
 data: <?php echo $data; ?>,
Je prépare date de la façon suivante :
Code :
$data="'a=$a&b=$b&c=$c&d=$d'";
je le place, juste après path:'...
Ce qui donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {
		url: $('form-demo').action,
		fieldName: 'photoupload',
		path: '/upload/web/js/Swiff.Uploader.swf',
 		data: <?php echo $data; ?>,
		limitSize: 8 * 1024 * 1024, // 8Mb
		onLoad: function() {
			$('demo-status').removeClass('hide');
			$('demo-fallback').destroy();
		},
		// The changed parts!
		debug: true, // enable logs, uses console.log
		target: 'demo-browse', // the element for the overlay (Flash 10 only)
	});
Voilà, en te souhaitant que cette fois, ça marche.

@+
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2011, 18h17   #9
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Est ce que tu pourrais essayer avec ceci :
Code :
data: 'id_article='+$('id_article').get('value'),
Laisse bien la virgule à la fin.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h24   #10
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Citation:
Envoyé par lenono Voir le message
Bonjour,

Si tu n'as rien en post, c'est que tes variables ne passent pas ! Je sais, classe

J'utilise ce script, et pour passer les variables, j'ajoute :
Code :
 data: <?php echo $data; ?>,
Je prépare date de la façon suivante :
Code :
$data="'a=$a&b=$b&c=$c&d=$d'";
je le place, juste après path:'...
Ce qui donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {
		url: $('form-demo').action,
		fieldName: 'photoupload',
		path: '/upload/web/js/Swiff.Uploader.swf',
 		data: <?php echo $data; ?>,
		limitSize: 8 * 1024 * 1024, // 8Mb
		onLoad: function() {
			$('demo-status').removeClass('hide');
			$('demo-fallback').destroy();
		},
		// The changed parts!
		debug: true, // enable logs, uses console.log
		target: 'demo-browse', // the element for the overlay (Flash 10 only)
	});
Voilà, en te souhaitant que cette fois, ça marche.

@+
Bonsoir, merci pour la proposition, j'essaye
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h26   #11
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Citation:
Envoyé par rawsrc Voir le message
Est ce que tu pourrais essayer avec ceci :
Code :
data: 'id_article='+$('id_article').get('value'),
Laisse bien la virgule à la fin.
Oui, j'avais vu la proposition de la personne sur le forum et avait essayé mais les boutons de l'envoi ne fonctionnes plus avec ce code.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h32   #12
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Finalement, ça fonctionne en préparant la variable comme le propose lenono

Un très grand merci à vous deux pour votre aide

Code :
$id_article = "'id_article=".$id_article."'";
puis :

Code :
data: <?php echo $id_article; ?>,
Par-contre pour passer plusieurs variables, il faut un séparateur ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h46   #13
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
oui le &
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2011, 19h18   #14
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Étonnement, je ne récupère que les deux premiers paramètres, avez vous une idée de pourquoi u_id n'est pas récupéré ?

Code :
	$data_post = "'id_article=".intval($_GET['id_article'])."&id_type_article=".intval($_GET['id_type_article'])."&u_id=".intval($_GET['u_id'])."'";
Alors qu'un echo de la chaîne donne :

Code :
'id_article=163&id_type_article=5&u_id=2'
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 19h27   #15
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

fais un pour afficher type et valeur
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 19h52   #16
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Citation:
Envoyé par syl2095 Voir le message
Bonjour,

fais un pour afficher type et valeur
Bonjour,

Réponse du var_dump() :

heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 20h01   #17
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Étonnamment, en modifiant la position des variables, cela fonctionne :

Code :
$data_post = "'id_article=".intval($_GET['id_article'])."&u_id=".intval($_GET['u_id'])."&id_type_article=".intval($_GET['id_type_article'])."'";
Sujet résolu merci à tous !
heretik25 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 08h33.


 
 
 
 
Partenaires

Hébergement Web