Récuperer la valeur d'une liste deroulante

Fermé
sabra - 27 mai 2012 à 23:24
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 30 mai 2012 à 13:40
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 44 Date d'inscription mercredi 30 novembre 2011 Statut Membre Dernière intervention 15 octobre 2012 6
28 mai 2012 à 00:51
En PHP :
<?php
$_POST['article'];
?>


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

Car le formulaire comporte l'attribut method paramétré à get
0
belgikoi Messages postés 44 Date d'inscription mercredi 30 novembre 2011 Statut Membre Dernière intervention 15 octobre 2012 6
28 mai 2012 à 23:30
Ah, oui, autant pour moi. Bien vu ;)
0
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
29 mai 2012 à 09:55
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
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 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
30 mai 2012 à 09:42
ç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
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 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
30 mai 2012 à 10:19
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
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 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
30 mai 2012 à 13:40
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