Bon... c'est la semaine des trucs basique oublié!

J'ai une page avec un formulaire simple. Dans ce formulaire je doit choisir un produits, une fois le choix fait le formulaire renvoi sur une page qui doit récupéré le nom du produits et générer les infos du produits choisi.

sauf que je n'arrive pas à récupérer le nom du produit!

voici un bout de code:
if (!empty($_POST['ok'])){
	if (!empty($_POST['produit'])){
		// echo $_POST['produit'];
		$produit = $_POST['produit'];
		?>
		<?php
	}
	else {
		echo '<p>Veuillez choisir un produit</p>';
	}
}
	?>
	<form action="produits.php?produit=<?php echo $produit; ?>" method="post">
		<label for="produit">Choisir un produit&nbsp;:</label>
		<select name="produit">
		<option value="">Choisir produit</option>
		<?php
			$req = 'SELECT DISTINCT
						P.produits,
						C.fr
				FROM produits P
				LEFT JOIN categories C ON P.id_categories = C.id
				WHERE C.id NOT IN (11,13,15,17,18,23)
				ORDER BY C.fr, P.produits ASC';
			$rows = $DB->get_data($req);
			$category = false;

			foreach($rows as $row){
				$categorie = $row->fr;

				if($category != $categorie) {
					if($category !== false) {
						echo '</optgroup>';
					}
					echo '<optgroup label="'.$categorie.'">';
					$category = $categorie;
				}
				echo '<option value="'.$row->produits.'" '.(isset($formulaire) && $formulaire->produit == $row->produits?'selected="selected"':"").'>'.$row->produits.'</option>';
			}
			echo '</optgroup>';
			?>
		</select>
		<input name="ok" type="submit" value="OK">
	</form>


Une fois renvoyé sur la page, l'adresse s'affiche comme ça: produits.php?produit=
donc, aucune infos sur la page...

Comment on fait déjà???
Modifié par juliesunset (20 Apr 2016 - 19:58)
Tu as mis Session_start en haut de ta page ?

Tu as bien mis ton bouton pour balancer les variables ?

Tu vas trouver Smiley cligne
Modifié par Tintin75 (20 Apr 2016 - 20:59)
Bonsoir,

il faut que tu utilises la méthode get pour transmettre des données dans l'URL avec un formulaire.

Je te conseille donc de remplacer ça :

<form action="produits.php?produit=<?php echo $produit; ?>" method="post">


par ça :

<form action="produits.php" method="get">


Une fois le formulaire envoyé, tu obtiendras une URL sous la forme produits.php?produit=NOM-DU-PRODUIT et tu pourras récupérer le nom du produit avec la variable $_GET['produit'].
Ah ben voilà! Je savais que ça devait être simple!!!

Plus qu'à faire un rewritting pour une adresse plus propre!

Merci!