Récupérer id d'un <select><option>//php//html
Résolu
the_jb
Messages postés
651
Date d'inscription
Statut
Membre
Dernière intervention
-
KIKOFF -
KIKOFF -
A voir également:
- Php select option
- Option d'ergonomie - Guide
- Easy php - Télécharger - Divers Web & Internet
- Option volte/vowifi - Guide
- Expert php pinterest - Télécharger - Langages
- Please select boot device - Forum Windows
11 réponses
$_POST['id_prix'] renvoie $rows['id_prix']
$_POST['prix'] ne peut rien renvoyé puisqu'il est en dehors de la boucle while et ne contient aucune valeur (value).
L'idée serait peut être d'ajouter le prix suite à l'id renvoyé de la value de boucle, d'effectuer un rechargement de la page à la sélection de la liste pour y afficher le champ de modification et de validation, etc...
En gros, non testé et juste pour l'idée :
$_POST['prix'] ne peut rien renvoyé puisqu'il est en dehors de la boucle while et ne contient aucune valeur (value).
L'idée serait peut être d'ajouter le prix suite à l'id renvoyé de la value de boucle, d'effectuer un rechargement de la page à la sélection de la liste pour y afficher le champ de modification et de validation, etc...
En gros, non testé et juste pour l'idée :
<form action="modif.php" method="POST"> <?php $requete="select * from tarif"; $resultat=mysql_query($requete); //rechargement de la page à la sélection echo '<select name="id_prix" onchange="javascript:submit(this)">'; while($rows=mysql_fetch_array($resultat)) { //insertion de l'id + prix dans le value séparé par un tiret echo '<option value="'.$rows['id_prix'].'-'.$rows['prix'].'">'.$rows['desc'].' - '.$rows['prix'].'</option>'; } echo '</select>'; //à la sélection de la liste if(isset($_POST['id_prix'])){ //on effectue un explode du value pour séparer l'id du prix $explore = explode('-',$_POST['id_prix']); //$explore[0] = id_prix //$explore[1] = prix //on case le tout dans des champs echo '<input type="text" name="id" value="'.$explore[0].'"> <input type="text" name="prix" value="'.$explore[1].'"> <input type="submit" name="modif" id="modif" value="Modifier">'; } echo '</form>'; //si action de valider if(isset($_POST['modif'])){ $sql="UPDATE tarif SET prix=$_POST['prix'] WHERE id_prix=$_POST['id']"; $result=mysql_query($sql); } ?>
L"idée de la remise du prix concernant l'article etait deja fait mais je ne l'avais pas rajouté à mon post. En tout cas celui ci me fait exactement la meme chose : lors de la selection, il revient toujours à la première valeur cependant il affiche le bon prix de l'article selectionné ..
il ne récupère toujours pas la valeur correspondante (l'id correspondant)...
il ne récupère toujours pas la valeur correspondante (l'id correspondant)...
Étonnant... votre formulaire en version simplifié sur le principe de mon dernier poste :
<form action="#" method="POST"> <select name="id_prix" onchange="javascript:submit(this)"> <option value="1-100" <?php if($_POST['id_prix']=='1-100'){ echo "selected='selected'";}?>>100</option> <option value="2-200" <?php if($_POST['id_prix']=='2-200'){ echo "selected='selected'";}?>>200</option> <option value="3-300" <?php if($_POST['id_prix']=='3-300'){ echo "selected='selected'";}?>>300</option> </select> <?php //à la sélection de la liste if(isset($_POST['id_prix'])){ echo 'Value = '.$_POST['id_prix'].''; //on effectue un explode du value pour séparer l'id du prix $explore = explode('-',$_POST['id_prix']); echo '<pre>'; print_r($explore); echo '</pre>'; //on case le tout dans des champs echo 'id:<input type="text" name="id" value="'.$explore[0].'" READONLY><br/> prix:<input type="text" name="prix" value="'.$explore[1].'"><br/> <input type="submit" name="modif" id="modif" value="Modifier">'; } ?> </form> <?php //si action de valider if(isset($_POST['modif'])){ echo 'id='.$_POST['id'].'<br/>prix='.$_POST['prix'].''; /*ici on a donc l'Update avec redirection vers la même page pour que la liste prenne en compte la modification du prix*/ } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne comprend pas, pourtant mon id s'affiche bien dans mon input ... j'ai testé ma requete dans phpmyadmin elle fonctionne parfaitement ... Sauf que ma selection reviens toujours par défaut à 0 après l'évenement submit
Je ne sais pas quel est le problème ?
Je ne sais pas quel est le problème ?
Dans vos "option" de votre liste, il faut un élément de comparaison pour rester sur la sélection "selected='selected'" sinon à chaque submit la liste revient par défaut au début.
<option value=valeur" <?php if($_POST['id_prix']=='valeur'){ echo "selected='selected'";}?>>***</option>
oww... <option value=valeur ?? oui enfin "echo '<option value="'.$rows['id_prix'].'" renvoi une valeur différente à chaque fois. en l'occurrence 1,2,3,... un simple $rows['id_prix'] placer dans l'option affiche ceci. donc c'est bien que chaque id sont différent. Le truc c'est pourquoi il ne veut pas le garder. Pourtant à l'évenement submit je lui dit d'afficher l'id_prix et il me l'affiche ...
Je vais essayé ce que tu m'as écris ci-dessus pour pouvoir garder l'option selectionnée.
Je vais essayé ce que tu m'as écris ci-dessus pour pouvoir garder l'option selectionnée.
ça devrait donner un truc du style :
echo '<option value="'.$rows['id_prix'].'-'.$rows['prix'].'"'; if($_POST['id_prix']==''.$rows['id_prix'].'-'.$rows['prix'].''){ echo "selected='selected'";} echo '>'.$rows['desc'].' - '.$rows['prix'].'</option>';
J'ai jamais vu une tel incrémentation et pour un code simple mais en plus d'être bien pensée c'est optimale ment écrit bravo ça c du programmeur j'en prend plein la vu tu métrise ce langage
Mais ou as tu appris cette syntaxe? quelle formation? autodidacte?
J'aimerais prendre contact et te soumettre quelques lignes de code Je payerai si tu le veux
christophe diebold alsace 68 adresse d.christophe68@ yahoo ou hotmail.fr Merci se serrais vraiment cool de prendre contacts a 1 de C 4 ' j'espere
Mais ou as tu appris cette syntaxe? quelle formation? autodidacte?
J'aimerais prendre contact et te soumettre quelques lignes de code Je payerai si tu le veux
christophe diebold alsace 68 adresse d.christophe68@ yahoo ou hotmail.fr Merci se serrais vraiment cool de prendre contacts a 1 de C 4 ' j'espere