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

Langage PHP Discussion :

Formulaire pour commande


Sujet :

Langage PHP

  1. #1
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Points : 81
    Points
    81
    Par défaut Formulaire pour commande
    Bonjour,

    J'essaie d'écrire le script d'une page qui permettrait de choisir un produit parmi une liste déroulante d'un formulaire.
    Une fois que l'utilisateur à choisi son produit dans la liste déroulante, il valide et une nouvelle ligne s'ajoute afin qu'il puisse choisir un nouveau produit etc.

    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
    <?php 
     
    	$larticle=array('Marteau'=>10, 'Tenaille'=>5, 'Vis'=>5.2, 'Clou'=>5.8,
    						'Tournevis'=>7, 'Ciseau'=>4, 'Toile emeri'=>3);
    	$nbProduits = 0;
    	$prixTotal = 0;
    	$panier = array();
     
     
    	function afficheFormulaire() { 
    		global $larticle;?>
    		<form method="post" action="commande.php">
    			<p>				
    			<select name="choix">
    			<option value="choixVide"> </option>
    			<option value="Marteau">Marteau (<?php echo $larticle['Marteau']?>€)</option>
    				<option value="Tenaille">Tenaille (<?php echo $larticle['Tenaille']?>€)</option>
    				<option value="Vis">Vis (<?php echo $larticle['Vis']?>€)</option>
    				<option value="Clou">Clou (<?php echo $larticle['Clou']?>€)</option>
    				<option value="Tournevis">Tournevis (<?php echo $larticle['Tournevis']?>€)</option>
    				<option value="Ciseau">Ciseau (<?php echo $larticle['Ciseau']?>€)</option>
    				<option value="Toile emeri">Toile éméri (<?php echo $larticle['Toile emeri']?>€)</option>
    			</select>
    			<input type="submit" value="Valider" />
    			</p>
    		</form>
    	<?php } 
     
     
    	function afficheDescription($produit) {
    		global $larticle;
    		echo 'Vous avez choisi un(e) ' . $produit . ' pour le prix de ' . $larticle[$produit] . ' €uros.';
    	}
     
     
    	function ajoutLigne(){
    		global $larticle, $panier, $nbProduits, $prixTotal;
     
    		foreach ($panier as $produit) {
    			afficheDescription($produit);
    		}
    		afficheFormulaire();
    		echo 'Vous avez commandé ' . $nbProduits . ' produit(s) pour un prix total de ' . $prixTotal . ' €uros.';
    	} 
     
     
    	if (!(isset($_POST['choix']))) {
    		ajoutLigne();
    	 }		
    	else if ($_POST['choix'] != 'choixVide')
    	{
    		$panier[$nbProduits] = $_POST['choix'];
    		$nbProduits++;
    		$prixTotal += $larticle[$_POST['choix']];
    		ajoutLigne();
    	}
    	else echo 'Veuillez choisir un produit avant de valider'; 
    	?>
    Pour le moment, j'arrive sur ma page, je choisis mon produit, je valide: OK! Ca m'affiche la description du produit que je viens de valider, ainsi que la liste déroulante pour choisir un nouveau produit, c'est ce que je veux.

    Sauf que problème, si je sélectionne un second produit et que je valide: le premier produit est effacé et remplacé par le second produit, bref aucune ligne ne s'ajoute (comme si le contenu de mon panier était effacé).
    Mon compteur nbProduits reste à 1 également.

    Pouvez-vous m'aider à résoudre ce problème?

  2. #2
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Points : 81
    Points
    81
    Par défaut
    Oublié tout ce que j'ai dit précédemment.
    Je n'avais pas compris la consigne.

    En fait, je dois parvenir à réaliser ceci: CLIC

    J'ai repris tout mon code :

    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
    <?php 
     
    		$larticle=array('marteau'=>10, 'tenaille'=>5, 'vis'=>5.2, 'clou'=>5.8,
    						'tournevis'=>7, 'ciseau'=>4, 'toile emeri'=>3);
    		$lquantite=array('marteau'=>0, 'tenaille'=>0, 'vis'=>0, 'clou'=>0,
    						'tournevis'=>0, 'ciseau'=>0, 'toile emeri'=>0);
    		$prixTotal = 0;
     
     
    		function afficheFormulaire() { 
    			global $larticle, $lquantite;?>
    			<form method="post" action="commande2.php">
    				<p>				
    				<select name="choix">
    					<option value="choixVide"> </option>
    					<option value="marteau">Marteau (<?php echo $larticle['marteau']?> euros)</option>
    					<option value="tenaille">Tenaille (<?php echo $larticle['tenaille']?> euros)</option>
    					<option value="vis">Vis (<?php echo $larticle['vis']?> euros)</option>
    					<option value="clou">Clou (<?php echo $larticle['clou']?> euros)</option>
    					<option value="tournevis">Tournevis (<?php echo $larticle['tournevis']?> euros)</option>
    					<option value="ciseau">Ciseau (<?php echo $larticle['ciseau']?> euros)</option>
    					<option value="toile emeri">Toile emeri (<?php echo $larticle['toile emeri']?> euros)</option>
    				</select>
    				<input type="number" name="quantite" />
    				<input type="hidden" value="<?php echo $lquantite; ?>" />
    				<input type="submit" value="Valider" />
     
    				</p>
    			</form>		
    		<?php print_r($_POST); print_r($lquantite);}
     
    		if (!(isset($_POST['choix']))) {
    			afficheFormulaire();		
    		}		
    		else if ($_POST['choix'] != 'choixVide')
    		{
    			$lquantite[$_POST['choix']] += $_POST['quantite'];
    			echo $lquantite[$_POST['choix']] . ' ' . $_POST['choix'] . '(s) : ' . $larticle[$_POST['choix']] . '<br/>';			
    			$prixTotal += $larticle[$_POST['choix']] * $_POST['quantite'];
    			echo 'Prix total : ' . $prixTotal . ' euros.<br/> ___________________________________________________<br/>Nouvel article:<br/>';
    			afficheFormulaire();
    		}
    		else echo 'Veuillez choisir un produit avant de valider'; 
    		?>
    Comment faire pour que lorsque je clique sur Valider la deuxieme fois, mon "panier" ne se vide pas.
    Apparemment, il faut que j'utilise les champs cachés, mais j'ai beau me prendre la tête depuis 3h, je vois pas en quoi ils peuvent m'aider dans ce cas là.

    Un grand merci à celui qui pourra m'aider!

  3. #3
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Points : 81
    Points
    81
    Par défaut
    Je vais préciser ma question.

    En fait, je voudrais savoir comment conserver et récuper les valeurs de mon tableau associatif lquantité, une fois que j'ai validé mon formulaire?
    Je pense au champ caché, mais je vois pas du tout comment y faire transiter des variables...

Discussions similaires

  1. bouton de commande sur formulaire pour module
    Par anaylane dans le forum VBA Access
    Réponses: 7
    Dernier message: 29/03/2010, 11h17
  2. Réponses: 0
    Dernier message: 21/01/2010, 14h37
  3. Formulaire pour base XML
    Par Nyx dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/02/2003, 20h51
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48

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