Probleme $_POST['variable']

Fermé
iTonton - 15 août 2013 à 01:15
 iTonton - 15 août 2013 à 11:10
Bonjour chers membres de la communauté CCM ! :)
Voici mon soucis, je suis en train de codé une appli de localisation de pièces détachées, dans l'interface utilisateur, il y a des <SELECT> pour enregistrer une pièce, mais quand je valide mon formulaire, j'obtiens une erreur me disant que les variables sont vides :/
voici mon code (encore inachevés j'en suis conscient mais il devrait fonctionner pour ce que je lui demande) :
<link rel="stylesheet" href="res/style.css">
<center>
	<?php
	if(isset($_POST['btn_enr']))
	{
		// require('connexion.php');
		// $req = $connexion->prepare('INSERT INTO piecedet(marque,piece,etagere,planche,bac) VALUES(:marque, :piece, :etagere, :planche, :bac)');
		// $req->execute(array(
		// 'marque' => $_POST['marque'],
		// 'piece' => $_POST['piece'],
		// 'etagere' => $_POST['etagere'],
		// 'planche' => $_POST['planche'],
		// 'bac' => $_POST['bac']
		 // or die(print_r($connexion->errorInfo()))));
		// echo 'La piece a ete enregistree';
		echo $_POST['marque'].$_POST['piece'].$_POST['etagere'].$_POST['planche'].$_POST['bac'];



	}
	?>

	<form method="POST" action="">
		Marque de la piece :<br>

			<select name='marque' class="styled-select">
				<option value='0' disabled selected>choissisez la marque</option> 

				<?php
				require('connexion.php');
				$resultats=$connexion->query("SELECT * FROM marques ORDER BY marque ASC"); 
				$resultats->setFetchMode(PDO::FETCH_OBJ); 
				while( $ligne = $resultats->fetch() ) 
				{
						echo '<option value="'.$ligne->marque.'">'.$ligne->marque.'</option>'; // on affiche la liste des marques
				}
				$resultats->closeCursor(); // on ferme le curseur des résultats
				?>
			</select> 
			<br>
			
		Type de piece :<br>
			<select name='piece' class="styled-select">
				<option value='0' disabled selected>choissisez la piece</option> 

				<?php
				require('connexion.php');
				$resultats=$connexion->query("SELECT * FROM pieces ORDER BY piece ASC"); 
				$resultats->setFetchMode(PDO::FETCH_OBJ); 
				while( $ligne = $resultats->fetch() ) 
				{
						echo '<option value="'.$ligne->piece.'">'.$ligne->piece.'</option>'; // on affiche la liste des pieces
				}
				$resultats->closeCursor(); // on ferme le curseur des résultats
				?>
				</select> 
				<br>
			
		etagere:<br>
			<select name='etagere' class="styled-select">
				<option value='0' disabled selected>choissisez l'etagere</option> 
				<option value="1">1</option>
				<option value="2">2</option>	
				<option value="3">3</option>
				<option value="4">4</option>
				<option value="5">5</option>
			</select>





		<br>planche:<br>
			<select name='planche' class="styled-select">
				<option value='0' disabled selected>choissisez la planche</option> 
				<option value="1">1</option>
				<option value="2">2</option>	
				<option value="3">3</option>
				<option value="4">4</option>	
			</select>













		<br>bac:<br>
			<select name='bac' class="styled-select">
				<option value='0' disabled selected>choissisez le bac</option> 
				<option value="1">1</option>
				<option value="2">2</option>	
				<option value="3">3</option>
				<option value="4">4</option>	
			</select><br><br>
		<input type="submit" name="btn_enr" class="styled-btn">
	</form>

</center>



Si vous pouviez m'aidez je serais très heureux de connaître mon erreur :)

Dans cette attente, Cordialement
iTonton

1 réponse

Bonjour

C'est à cause de tes disabled :
<option value='0' disabled selected>

Tous les champs qui sont restés sur cette valeur ne sont pas transmis, donc les $_POST['xxx'] correspondants n'existent pas.
À mon avis, le plus simple est de supprimer tout simplement le 'disabled'. Si tu tiens à les garder, tu dois tester individuellement l'existence de chaque variable avec isset()
1
Je te remercie beaucoup, c'est très gentil de ta part d'être penché sur mon cas, effectivement sans les disabled ça fonctionne impec. Merci beaucoup encore une fois :)
0