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

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


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

      Car le formulaire comporte l'attribut method paramétré à get
      0
    2. belgikoi Messages postés 52 Statut Membre 6
       
      Ah, oui, autant pour moi. Bien vu ;)
      0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. 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
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    ç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
    1. 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
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. sabra
       
      merci merci énormément ca marche bien monsieur meeeeeeeeeerci :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    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