Sélection sans changer valeur initiale

Résolu/Fermé
rubik's drummer Messages postés 23 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 6 août 2007 - 25 juin 2007 à 11:00
rubik's drummer Messages postés 23 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 6 août 2007 - 26 juin 2007 à 14:11
Salut à tous !!

J'ai un petit problème avec mon programme. J'ai réalisé plusieurs enregistrements dans une table que j'affiche dans un tableau. Dans mon tableau il y a un lien pour modifier l'enregistrement. J'affiche ainsi une page avec plusieurs champs pour modofier les valeurs des attributs de l'enregistrement sélectionné. Un des champs est défini comme un menu déroulant pour faire une sélection parmi plusieurs valeurs. Le porblème c'est que si je ne veux pas changer ce champ le programme me retourne la valeur choisir lorsque je valide mes changements. J'aimerais savoir comment faire pour garder la valeur initiale sans avoir besoin de la choisir dans le menu déroulant.

Merci beaucoup et à bientôt.
A voir également:

4 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
25 juin 2007 à 19:00
salut,

"si je ne veux pas changer ce champ le programme me retourne la valeur choisir lorsque je valide mes changements"

je comprends pas. si tu ne veux pas modifier la liste ⇒ tu ne modifies pas la liste !
donc le formulaire te renvoie la même valeur, donc rien à changer dans la bdd…

me trompe-je ?

sauf si tu n'as pas sélectionné le bon <option> par rapport à la valeur de la base et qu'il te renvoie la valeur du premier <option> qui est affiché par défaut mais qui ne correspond pas forcement à la valeur de l'enregistrement affiché.

bref, pourrais-tu nous éclaircir un peu tout ça stp ?
0
rubik's drummer Messages postés 23 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 6 août 2007
26 juin 2007 à 09:03
salut !!

je vais essayer de donner un exemple : je clique sur mon lien dans mon menu ajouter un nouvel élément. J'arrive sur une page avec plusieurs champ. Le champ "grandeur" n'est pas un input mais un select . Je choisi un élément à partir d'une liste, jusque là ca va. je rempli les autres champ( input ). Je valide et mon eregistrement a bien étét réalisé dans la base de données. Plus tard je veu modifier cet enregistrement j'ai donc créer un programme qui m'ouvre la page avec tous les champ comme pour un nouvel élément mais cette fois j'ai rempli les champs en sélectionnant dans la table les valeurs de chaque champ. Ca marche pour les input mais pas pour le champ de type select. Par exemple si je veux garder pression dans ce champ je suis obligé de choisir pression dans la liste pour le garder dans l'enregistrement. Je pourrais ne pas mettre de select et me contenter de metre un input mais j'aimerais utiliser le type select pour pouvoir choisir sans avoir à taper le text dans le input. Voilà j'espère que j'ai été un peu plus clair. je vous laisse mes lignes de code si ca peut vous aider.


<tr><td><p>Grandeur mesurée&nbsp;:</td>

<td>

<?php 

$nomchamp='mesurecapteur';

$link = mysql_connect('localhost', 'root', '')
	or die('Could not connect');

	mysql_select_db('materiellabo') or die('Could not select database');
	
/* écriture de la requete */

$requete = "SELECT DISTINCT `mesurecapteur` 
	   FROM `grandeurmesure` 
	   ORDER BY `mesurecapteur` DESC 
                        LIMIT 0 , 30 ";


/* extraire la colonne*/

$resultat = mysql_query($requete);

/* affichage du composant HTML */

echo "<select name='mesurecapteur' size='1'>";
echo "<option value='Choisir'>";
while ($ligne = mysql_fetch_array($resultat)) {
   		echo "<option>";
   		echo $ligne[$nomchamp];
			}
echo "</select>";

?>

0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
26 juin 2007 à 11:51
salut,

vi, vi, c'est bien ce que j'avais cru comprendre !
quand tu rempli ton <select> il faut tester à chaque ajout d'<option> si la valeur ajoutée est égale à la valeur qui doit être affichée. si c'est le cas, alors il faut ajouter l'attribut 'selected' (ou selected="selected"' si tu codes en xhtml) pour afficher cette valeur là au chargement de la page. comme ça si tu ne le modifies pas et que tu soumets ton formulaire, la valeur renvoyée sera la même que celle de la bdd !
par ailleurs je n'ai pas bien compris comment tu affichais ton <select>, donc je te propose ça :
echo ("<select name='mesurecapteur' size='1'>\n");
while ($ligne = mysql_fetch_array($resultat)) {
   		echo ('<option ');
                echo ('value="'.$ligne[$nomchamp].'"')
                if ($ligne[$nomchamp]==$la_valeur_que_tu_veux_afficher){
                                echo ('slected="selected">')
                }
                else{
                                echo ('>')
                }
   		echo $ligne[$nomchamp];
   		echo "</option>\n";
			}
echo "</select>\n";

j'ai ajouté des fins de ligne ("\n") pour présenter le html un peu mieux, sinon je m'y perds !
0
rubik's drummer Messages postés 23 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 6 août 2007
26 juin 2007 à 14:11
thx beaucoup ça tourne à présent !!

Bonne journée et à bientôt pour de nouvelles superbes questions!!
0