Récuperer la valeur d'une liste deroulante
sabra
-
Alain_42 Messages postés 5413 Statut Membre -
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>";
}
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
-
En PHP :
<?php $_POST['article']; ?>
En JavaScript :document.getElementById("article").value; -
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>";
-
ç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>'; } -
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>'; } -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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>