Récupérer id d'un <select><option>//php//html
Résolu/Fermé
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
-
Modifié par the_jb le 14/07/2012 à 19:24
KIKOFF - 3 avril 2013 à 20:44
KIKOFF - 3 avril 2013 à 20:44
A voir également:
- Php select option
- Option booster free avis - Accueil - Guide opérateurs et forfaits
- Easy php - Télécharger - Divers Web & Internet
- Option d'ergonomie - Guide
- Aucune option d'alimentation n'est actuellement disponible - Guide
- Retour a la ligne php ✓ - Forum PHP
11 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
14 juil. 2012 à 22:25
14 juil. 2012 à 22:25
$_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); } ?>
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
15 juil. 2012 à 10:02
15 juil. 2012 à 10:02
Ok merci pour tout je test quelque chose dans ce genre et je t'en redonne des nouvelles
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
Modifié par the_jb le 15/07/2012 à 10:14
Modifié par the_jb le 15/07/2012 à 10:14
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)...
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
15 juil. 2012 à 12:18
15 juil. 2012 à 12:18
É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
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
Modifié par the_jb le 15/07/2012 à 13:13
Modifié par the_jb le 15/07/2012 à 13:13
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 ?
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
15 juil. 2012 à 14:48
15 juil. 2012 à 14:48
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>
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
15 juil. 2012 à 18:40
15 juil. 2012 à 18:40
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.
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
15 juil. 2012 à 18:52
15 juil. 2012 à 18:52
ç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
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
15 juil. 2012 à 19:29
15 juil. 2012 à 19:29
je test ;D.
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
15 juil. 2012 à 22:19
15 juil. 2012 à 22:19
Oui ça fonctionne. ça garde bien l'article selectionné ! Mais ne veut toujours pas modifier =(
the_jb
Messages postés
651
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 mai 2016
58
15 juil. 2012 à 22:26
15 juil. 2012 à 22:26
ça y est, j'ai réussi. Après avoir gardé la selection j'ai modifier la requete en rajouter juste 2 ptits " et ça fonctionne . Merci pour ton aide !