[PHP] Récupération données avec checkbox

Fermé
Squall - 5 déc. 2007 à 19:21
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 - 6 déc. 2007 à 00:45
Bonjour,
dans le cadres d'un développement de projet informatique pour mon BTS, je rencontre un problème avec, comme expliqué dans le titre, des checkbox. En effet, j'aimerais trouver un moyen de récupérer les champs ou les cases sont cochées. J'èspère que vous pourrez me donner quelques conseils...
Organisé autour d'une base de donnée mysql, mon projet a pour but de gérer la compatibilité entre une imprimante et une ou plusieurs cartouches.
Je rencontre des problèmes avec ma page d'ajout d'une nouvelle imprimante. Dans un premier temps, je remplis, à l'aide d'un formulaire, la référence de l'imprimante ainsi qui da désignation , sa marque, et son type. Dans un second temps j'affiche la liste des cartouches possédant le même type et la même marque dans un tableau où se trouve une checkbox sur chaque ligne de résultat.
je vous montre mon code :
premiere page ( saisie nouvelle imprimante) :
<?php
include "../connexion.php";
?>
<body background="../Images/back.jpg" text="white">
<center>
       <h2> Ajouter une imprimante </h2>
       <form name="form" action="test.php" method="post" onsubmit="return verifChamps()">
	   
	   <table>
			<tr>
				<td align="right">Veuillez entrer la référence de l'imprimante :</td> 
				<td><input type="text" name="code_imprimante" id="code_imprimante"></td>
			</tr>
			<tr>
				<td align="right">Veuillez entrer la désignation de l'imprimante :</td>
				<td><textarea type="text" name="designation_imprimante" id="designation_imprimante" rows="5" cols="15"></textarea></td>
			</tr>
			<tr>
				<td align="right">Veuillez sélectionner le type d'imprimante :</td> 
				<td>
					<select name="LibelType" id="LibelType">
					<option></option>
<?php 
$req= mysql_query('Select LibelType from Type order by LibelType')or die(mysql_error());
while ($ligne=mysql_fetch_array($req))
	{
	?>
	<option><?php echo ''.$ligne['LibelType'].'';?> </option>
	<?php
	} ?>
				</td>
			</tr>
			<tr>
				<td align="right">Veuillez sélectionner la marque de l'imprimante :</td> 
				<td>
					<select name="LibelMarque" id="LibelMarque">
					<option></option>
<?php 
$req2= mysql_query('Select LibelMarque from Marque order by LibelMarque')or die(mysql_error());
while ($ligne2=mysql_fetch_array($req2))
	{
	?>
	<option><?php echo ''.$ligne2['LibelMarque'].'';?> </option>
	<?php
	} ?>
				</td>
			</tr>
		</table>	  
					  <input type="submit" name="validation_ajout_imprimante">
</center>
</body>





Cela a donc pour but de remplir les champs concernant l'imprimante qui sera créée par la suite.

Ma deuxième page récapitule les données saisies précédemment et affiche le tableau des cartouches ayant même marque et même type :

?php
include "../connexion.php";    
error_reporting(E_ALL ^ E_NOTICE);
?>
<body background="../Images/back.jpg" text="white">
<center>
       <h2> Nouvelle imprimante : </h2>
<form action="test2.php" method="post">	  
 <table>
			<tr>
				<td align="right">Référence de l'imprimante :</td> 
				<td><input type="text" name="code_imprimante" id="code_imprimante" value='<?php echo $_POST['code_imprimante']; ?>' readonly ></td>
			</tr>
			<tr>
				<td align="right">désignation de l'imprimante :</td>
				<td><input type="text" name="designation_imprimante" id="designation_imprimante" value='<?php echo $_POST['designation_imprimante']; ?>' readonly></td>
			</tr>
			<tr>
				<td align="right">Type d'imprimante :</td> 
				<td>
<input type="text" name="LibelType" id="LibelType" value='<?php echo $_POST['LibelType']; ?>' readonly>
				</td>
			</tr>
			<tr>
				<td align="right">Marque de l'imprimante :</td> 
				<td>
					<input type="text" name="LibelMarque" id="LibelMarque" value='<?php echo $_POST['LibelMarque']; ?>' readonly>
				</td>
			</tr>
		</table>
<br>
<br>
<table border="">
		  <tr>
		     <th bgcolor="black"><font color="white">Référence</th>
		     <th bgcolor="black"><font color="white">Désignation</th>	
		     <th bgcolor="black"><font color="white">Type</th>
			 <th bgcolor="black"><font color="white">Marque</th>
			 <th bgcolor="black"><font color="white">Prix</th>
			 <th bgcolor="black"><font color="white">Compatibilité</th>
		  </tr>

	<?php	
if ($connexion)
{
	    $req= mysql_query('Select CodeType from TYPE where LibelType="'.$_POST['LibelType'].'"')or die(mysql_error());
		$req2= mysql_query('Select CodeMarque from Marque where LibelMarque="'.$_POST['LibelMarque'].'"')or die(mysql_error());

		$y=mysql_fetch_assoc($req);
		$z=mysql_fetch_assoc($req2);


$resultat=mysql_query('select * from cartouche_test where CodeMarque="'.$z['CodeMarque'].'" and CodeType="'.$y['CodeType'].'"') or die ("requète non executé");

$s=0;
while ($i=mysql_fetch_assoc($resultat))
		 {
		  $ref= $i['RefCart'];
		  $des= $i['DesCart'];
		  $LibelType= $_POST['LibelType'];
		  $LibelMarque= $i['LibelMarque'];
		  $prix= $i['PrixCart'];
		  $s=($s+1);
		  echo '<tr>';
		  echo '<td>';
		  //echo '<center>'.$ref;
		  echo '<center><input type="text" size="3" name=ref'.$s.' value='.$ref.' readonly ></center>';
		  echo '</td>';
		  echo '<td>';
		  //echo '<center>'.$des;
		  echo '<center><input type="text" size="3" name=des'.$s.' value='.$des.' readonly ></center>';
		  echo '</td>';
		  echo '<td>';
		  echo '<center>'.$_POST['LibelType'];
		  echo '</td>';
		  echo '<td>';
		  echo '<center>'.$_POST['LibelMarque'];
		  echo '</td>';
		  echo '<td>';
		  //echo '<center>'.$i['PrixCart'];
		  echo '<center><input type="text" size="3" name=prix'.$s.' value='.$prix.' readonly ></center>';
		  echo '</td>';
		  echo '<td align="center">';
		  echo '<input type="checkbox" name=choix value='.$s.'>';
		  echo '</td>';
		  //echo '<td>';
		  //echo $s;
		  //echo '</td>';
		  echo '</tr>';
		 }?>
 
		<?php }				
	?>
</table>

	<input type="submit" value="Valider">
</form>


Un tableau affiche donc les différents résultats ainsi que des checkbox prenant la valeur de ma variable d'incrémentation.
Lors d'un post, j'aimerai pouvoir obtenir toutes les informations concernant les cartouches des lignes ou les cases sont cochées...
je n'ai pas encore trouvé comment j'allais m'y prendre car si je récupère la valeur de ma variable d'incrémentation avec le post, elle me retourne la dernière ligne cochée... donc un seul résultat pris en compte ...

Je suis à votre disposition pour toutes questions ou demande d'explications. J'espère que vous répondrez à ma demande d'aide.
Je vous remercie par avance.

Cordialement
A voir également:

1 réponse

s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
6 déc. 2007 à 00:45
Salut,

heuu oui j'ai une question, j'ai juste compris que tu as un problème de checkbox, mais je n'ai pas compris ou est le problème.

Sinon à par ça je lis dans ton code :
type="checkbox" name=choix


Alors les guillemets tu es met ou tu les mets pas, ça dépend du doctype choisie, il vaut mieux les mettre.


Tous en bas il y a aussi ça :
?>
 
		<?php

Il est inutile de fermer pour rouvrir juste après.
0