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

PHP & Base de données Discussion :

Passage de variables hidden dans formulaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    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 : 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
    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 : 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
    <?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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $_id_article = $_POST['id_article'];
    La variable est vide.

    Par avance, un grand merci à la personne qui réussira à m'expliquer comment procéder.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Il te suffit de rajouter un paramètre supplémentaire à swiffy.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data: // ici tu vas chercher les valeurs de tes ids html que tu sépares avec &
    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data: 'id_article='+$('id_article').get('value')+'&'+...
    Une dernière chose <script type="text/javascript" est devenu : <script type="application/javascript"

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour et merci !

    Je vais tester !

    Et côté doUpload.php, je pourrai récupérer le $_POST['id_article'] ?

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    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.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    En mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    {'id_article':$('id_article').get('value'), ... }

  7. #7
    Membre très actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
     data: <?php echo $data; ?>,
    Je prépare date de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data="'a=$a&b=$b&c=$c&d=$d'";
    je le place, juste après path:'...
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    @+

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

Discussions similaires

  1. [PHP-JS] Passage de variable PHP dans une fonction JS
    Par redvivi dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2008, 13h07
  2. Passage de variable GET via formulaire POST ?
    Par tintin72 dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2007, 17h51
  3. [FLASH 8] Variables Flash dans formulaire html
    Par tarzanjane dans le forum Flash
    Réponses: 6
    Dernier message: 21/09/2006, 12h16
  4. [POO] [PHP4] passage de variables d'un formulaire
    Par xG-Hannibal dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2006, 14h28
  5. passage de variable par un formulaire (checkbox)
    Par artotal dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2005, 19h16

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