Récuperer la valeur d'une liste deroulante

sabra -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
voila mon prb!! j ai une liste deroulante <select> alimenté grace a un table dans ma base je veux récuperer la valeur choisi par l'utilisateur pour l'utliser voila mon code!!! svp aidez moi j ai passé pas mal de temps a chercher pr resoudre se prb

<?php

$base=mysql_connect('localhost', 'root', '');
mysql_select_db('monapplication', $base);
?>

<form name="form1" action="comM.php" method="Get">
<table>
<tr>
<td>
<label ><strong><font color="#0097C5">Article:</font></strong></label>
</td>
<td>
<select name="article" id="article" style="width: 170px">
<?php
$SQL = "SELECT Des_A FROM articles WHERE titre_A NOT LIKE 'pack'";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option name=\"ok\">".$val['Des_A']."</option>";
}
?> </select>
</td>
</tr>
<tr>
<td>
<label ><strong><font color="#0097C5">Qte:</font></strong></label>
</td>
<td>
<input type="text" name="qte1" id="qte1"/>
</td>
</tr>
</table>
<div id="templatemo_login">
<input type="submit" name="envoyer" value="envoyer" class="button"/>
</div>
<?php
if(isset($_GET['envoyer']))
{

$sql="SELECT qte FROM articles WHERE Des_A= '".$_GET["article"]."'";
$res = mysql_query($sql);
$qte=$_GET['qte1'];
if($qte1>$res)
{
echo "<script>alert('qte indisponible')</script>";
}

5 réponses

belgikoi Messages postés 52 Statut Membre 6
 
En PHP :
<?php
$_POST['article'];
?>


En JavaScript :
document.getElementById("article").value;
0
ReDLoG
 
Avec PHP, je dirais :
<?php
$_GET['article'];
?>

Car le formulaire comporte l'attribut method paramétré à get
0
belgikoi Messages postés 52 Statut Membre 6
 
Ah, oui, autant pour moi. Bien vu ;)
0
Alain_42 Messages postés 5413 Statut Membre 894
 
il y a surtout une grosse anomalie dans la generation de la liste:
echo "<option name=\"ok\">".$val['Des_A']."</option>";

l'attribut name doit seulement être dans la balise <select

<option par contre doit avoir value="..."

echo "<option value=\"".$val['Des_A']."\">".$val['Des_A']."</option>";
0
sabra
 
salut !! merci pour votre proposition mais çà ne fonctionne plus encore!! est ce que vs avez une autre idée !!! je suis vraiment bloquée ici!! et ça est très important pour mon projet de fin d'étude !!! :(
0
Alain_42 Messages postés 5413 Statut Membre 894
 
ça n'est pas très précis, ta réponse ça ne fonctionne pas (quoi, quel message d'erreur ??), mais voilà quand même une solution, avec d'autres corrections
<?php

$base=mysql_connect('localhost', 'root', '');
mysql_select_db('monapplication', $base);
?>

<form name="form1" action="comM.php" method="Get">
<table>
<tr>
<td>
<label ><strong><font color="#0097C5">Article:</font></strong></label>
</td>
<td>
<select name="article" id="article" style="width: 170px">
<?php
$SQL = "SELECT Des_A FROM articles WHERE titre_A NOT LIKE 'pack'";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
	echo '<option value="'.$val['Des_A'].'">'.$val['Des_A'].'</option>';
}
?> </select>
</td>
</tr>
<tr>
<td>
<label ><strong><font color="#0097C5">Qte:</font></strong></label>
</td>
<td>
<input type="text" name="qte1" id="qte1" value="" />
</td>
</tr>
</table>
<div id="templatemo_login">
<input type="submit" name="envoyer" value="envoyer" class="button"/>
</div>
<?php
if(isset($_GET['envoyer']))
{

$sql="SELECT qte FROM articles WHERE Des_A= '".$_GET["article"]."'";
$res = mysql_query($sql);
//il faut extraire la quantité trouvé du resultat de la requette par un mysql_fetch...
$ligne=mysql_fetch_array($res);
$qte_dispo=$ligne['qte'];
$qte1=$_GET['qte1']; //la erreur 
if($qte1 > $qte_dispo)
{
echo '<script type="text/javascript">alert("qte indisponible");</script>';
} 
0
sabra
 
j ai aucun message d'erreur !!! il y a aucun !! mais j ai pas l'affichage de message d'alerte!!!
echo '<script type="text/javascript">alert("qte indisponible");</script>';
cette Echo ne fonctionne pas!!!
0
Alain_42 Messages postés 5413 Statut Membre 894
 
rajoutes cettetrce
<?php

$base=mysql_connect('localhost', 'root', '');
mysql_select_db('monapplication', $base);
?>

<form name="form1" action="comM.php" method="Get">
<table>
<tr>
<td>
<label ><strong><font color="#0097C5">Article:</font></strong></label>
</td>
<td>
<select name="article" id="article" style="width: 170px">
<?php
$SQL = "SELECT Des_A FROM articles WHERE titre_A NOT LIKE 'pack'";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
	echo '<option value="'.$val['Des_A'].'">'.$val['Des_A'].'</option>';
}
?> </select>
</td>
</tr>
<tr>
<td>
<label ><strong><font color="#0097C5">Qte:</font></strong></label>
</td>
<td>
<input type="text" name="qte1" id="qte1" value="" />
</td>
</tr>
</table>
<div id="templatemo_login">
<input type="submit" name="envoyer" value="envoyer" class="button"/>
</div>
<?php
if(isset($_GET['envoyer']))
{

$sql="SELECT qte FROM articles WHERE Des_A= '".$_GET["article"]."'";
$res = mysql_query($sql);
//il faut extraire la quantité trouvé du resultat de la requette par un mysql_fetch...
$ligne=mysql_fetch_array($res);
$qte_dispo=$ligne['qte'];
$qte1=$_GET['qte1']; 
//Trace que tu enlèves après bien sur
echo 'Qté demandée: '. $qte1.'qte dispo: '.$qte_dispo;
if($qte1 > $qte_dispo)
{
echo '<script type="text/javascript">alert("qte indisponible")</script>';
}  
0
sabra
 
merci merci énormément ca marche bien monsieur meeeeeeeeeerci :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
une autre solution sans javascript, avec réaffichage des données précédemment saisie dans le formulaire et du message en dessous du formulaire
<?php

$base=mysql_connect('localhost', 'root', '');
mysql_select_db('monapplication', $base);
 
//init variables
$qte1="";
$article="";
$message="";

////cette partie ci dessous doit être avant la partie formulaire
if(isset($_GET['envoyer']))
{
	$sql="SELECT qte FROM articles WHERE Des_A= '".mysql_real_escape_string($_GET["article"])."'";
	//mysql_real.... c'est pour securiser la requette sql
	$res = mysql_query($sql);
	$ligne=mysql_fetch_array($res);
	$qte_dispo=$ligne['qte'];
	$qte1=$_GET['qte1']; 

	if($qte1 > $qte_dispo)
	{
		$message="Quantitée indisponible !";
	} 
} 
////
?>

<form name="form1" action="comM.php" method="Get">
<table>
	<tr>
		<td>
			<label ><strong><font color="#0097C5">Article:</font></strong></label>
		</td>
		<td>
			<select name="article" id="article" style="width: 170px">
			<?php
			$SQL = "SELECT Des_A FROM articles WHERE titre_A NOT LIKE 'pack'";
			$res = mysql_query($SQL);
			while($val=mysql_fetch_array($res)) {
				$option='<option value="'.$val['Des_A'].'"';
				if($article==$val['Des_A']) $option.= ' selected="selected"'; //ça c'est pour garder la selection au réaffichage
				$option.=' >'.$val['Des_A'].'</option>';
				
				echo $option;
			}
			?> </select>
		</td>
	</tr>
	<tr>
		<td>
			<label ><strong><font color="#0097C5">Qte:</font></strong></label>
		</td>
		<td>
			<input type="text" name="qte1" id="qte1" value="<?php echo $qte1; ?>" />
			<!-- ci dessus au premier affichage du formulaire $qte1="" donc value= vide, au réaffichage on a value= qté saisie précédemment -->
		</td>
	</tr>
	<?php
		//affichage du message eventuel si qté pas dispo
		if($message !="") echo '<tr><td colspan="2"></td><font color="red">'.$message.'</font></tr>';
	?>
</table>
<div id="templatemo_login">
<input type="submit" name="envoyer" value="envoyer" class="button"/>
</div>

0