PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-11-2009 12:02:17

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

[Résolu] Formulaire de modification avec liste de déroulante

Bonjour à tous,
J'ai un nouveau problème avec un formulaire de modification... dans mon formulaire j'affiche les données de ma table et j'ai plusieurs listes déroulantes, mais après plusieurs essais infructueus, je ne vois  toujours pas comment faire pour afficher les valeurs de ma table et en même temps pouvoir les modifier avec mes listes déroulantes..... pour résumer comment faire pour afficher dans ma liste déroulante la valeur saisie dans ma  table.

Si quelqu'un avait une piste cela serait super.
Merci d'avance.
@+

Hors ligne

#2 27-11-2009 12:32:58

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Hum en gros comment remplir une liste déroulante avec les valeurs de la table ?

En vite fait cela ressemblerai à cela :

<balise de début de liste>
<?php
ta requête
while($r=mysql_fetch_array(résultats_de_ta_requête)){
 echo"<balise element liste>".$r['nom_du_champs_du_select']."</balise>";
}
?>
</fin balise liste>

C'est un mic-mac d'algo et de programmation car j'ai pas en tête le nom des balises et pas le temps de chercher passant en flèche. neutral

Hors ligne

#3 27-11-2009 13:09:44

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Saluton,
Je ne crois pas que cela réponde à la demande de notre brave infograph61.
Ce qu'il veut savoir c'est comment, dans une liste déroulante dont les valeurs sont extraites d'une table de nomenclature dans sa base de données, présélectionner la valeur (clé étrangère) existante dans une autre table.
Pour ce faire il faut comparer, dans la boucle de parcours de la requête sur la nomenclature, la valeur de chaque id avec celle exportée en foreign key, et quand la comparaison colle ajouter l'attribut selected="selected" dans la balise ouvrante <option>.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 27-11-2009 14:25:07

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

Toujours fidèle au poste et disponible à ce que je vois........
c'est exactement cela, ce que je n'arrive pas à faire c'est a afficher la valeur déjà existante dans ma table et pouvoir éventuellement  la modifier avec ma liste déroulante.
Le code ci dessous fonctionne mais quand je fais une modif. sur une autre cellule la valeur de ma liste déroulante disparait et je vais avoir plusieurs liste dans mon formualire....donc je suis mal parti.

               

<?php include('connexion.php'); ?>
                <select name="Pays" id="Pays">
                <option value=""><?php echo $donnees['Pays']; ?></option>
                <?php
                $resultat=mysql_query("select pays from pays order by pays") or die ("requète non executé");
                if (! $resultat) { echo "Erreur requete"; exit;}
                while ($ligne=mysql_fetch_array($resultat))
                {
                ?>
               
                <option><?php echo ''.$ligne['pays'].'';?> </option>
                <?php
                }
                mysql_close($connexion);
               ?>

merci pour ta réponse, mais le pauvre infograph ne comprends pas tout...
@+
merci d'avance

Hors ligne

#5 27-11-2009 14:58:28

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

remplacer la ligne dans le while.


<option<?php echo $donnees['Pays']==$ligne['pays'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['pays'].'';?> </option>

bon courage

a++

Hors ligne

#6 27-11-2009 15:54:10

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Sûrement pas.
Et il ne faut pas mettre la première ligne d'option avant le while, car le pays existe déjà dans le table et sera ressorti dans la boucle de parcours de $resultat.

<?php include('connexion.php'); ?>
  <select name="Pays" id="Pays">$donnees['Pays'];
<?php
$resultat=mysql_query("select pays from pays order by pays") or die ("requête non executé");
  if (! $resultat) { echo "Erreur requete"; exit;}
$selected="";
while ($ligne=mysql_fetch_array($resultat))
                      {
                     $selected = ($ligne['pays']==$donnees['Pays') ? 'selected="selected"' : '';
                      printf("<option %s>%s</option>\n",$selected,$ligne['pays'])
                      }
 mysql_close($connexion);
  ?>
</selected>

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 27-11-2009 16:12:04

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

>>Et il ne faut pas mettre la première ligne d'option avant le while

bah, elle es pas mise avant le while roll


relis bien wink


"remplacer la ligne dans le while."


et c'est quoi le </selected> ???

et puis ça : 'selected="selected"

c'est pas bon wink

c'est SELETED seulement ou vide big_smile:D

bon, on voit que l'age attaque dur big_smile:D

a++

Dernière modification par Pierrot (27-11-2009 16:15:15)

Hors ligne

#8 27-11-2009 16:17:00

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

J'ai  testé le code de Pierrot,  il fonctionne à première vue ( enfin je crois) et je suis en train d'essayer de l'adapter sur une autre zone, mais comme j'ai nommé mes tables et mes cellules ... ect .....comme un gros naze..... je ne m'y retrouve pas.
je continue et j'essais ton nouveau code...

Merci à vous trois pour votre aide, je reviens au plus vite avec le résultat.
@+
infograph61

Hors ligne

#9 27-11-2009 16:19:07

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

>>j'essais ton nouveau code...

surtout pas big_smile:D
essayer le code de MK après l'apéro et digestif, tu prends des risques big_smile:D

a++

Hors ligne

#10 27-11-2009 16:27:44

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

pour cela il faudrait que je me remette à l'alcool, mais pourquoi pas quand j'aurrai fini de me prendre la tête avec cette BdD il faudra que j'y pense.
Plus sérieusement, je suis toujours sur la premiere version qui fonctionne, et j'essais toujours de l'adapter à une autre zone. mais je me mélange dans les noms de tables et colones.... qui on les mêmes noms.
@+

Hors ligne

#11 27-11-2009 16:31:16

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

>>pour cela il faudrait que je me remette à l'alcool,
quand je te parlais d'apéro et digestif, je te parlais des excès bien connus de notre ami MK big_smile:D

a++

Hors ligne

#12 27-11-2009 16:45:13

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Pierrot a écrit :

>>Et il ne faut pas mettre la première ligne d'option avant le while

bah, elle es pas mise avant le while roll


relis bien wink


"remplacer la ligne dans le while."


et c'est quoi le </selected> ???

et puis ça : 'selected="selected"

c'est pas bon wink

c'est SELETED seulement ou vide big_smile:D

bon, on voit que l'age attaque dur big_smile:D

a++

</select> évidemment. Par contre, désolé de te contredire Pierrot, mais la recommandation du W3C et bien selected="selected" et non selected alone.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#13 27-11-2009 16:46:41

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

je ne savais pas, mais vous nous rendez tous tellement service à nous pauvres PHPDébutant que je ne peux lui en vouloir.
J'ai demellé tous mes fils et tout fonctionne come je voulais.
Merci à toute l'equipe, ...... merci pour vos compétences et pour votre disponnibilité.

@+
Un infograph redevable........

Hors ligne

#14 27-11-2009 16:54:33

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

MK->
oui tu as certainement raison wink

met lui selected="troudebal" et ce sera sélectionné wink

pire, met lui selected = "no" selected="non" selected="niet" selected = "jeveuxpasquecesoitselectione"

et ce sera qd même sélectionné wink


et ce sur IE, FF et chrome wink

a++

Dernière modification par Pierrot (27-11-2009 16:57:23)

Hors ligne

#15 27-11-2009 17:17:11

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Mouais.. comme dit ailleurs, pour un spécialiste d'Ajax, c'est pas du propre ^^

* sifflotte wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#16 27-11-2009 18:37:14

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] Formulaire de modification avec liste de déroulante

Si nous qui souhaitons encourager les bonnes pratiques nous ne faisons pas la promotion du code propre, qui le fera.
Il vaut toujours mieux suivre les recommandations du W3C, le jour où les navigateurs les respecteront vos codes s'en sortiront toujours mieux que ces syntaxes laxistes.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#17 27-11-2009 18:57:01

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

MK, parfait wink
a++

Hors ligne

#18 28-11-2009 09:58:18

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

Bonjour à tous,
J'ai créé 8 listes déroulantes, quand je les renseigne ensemble pas de problème, mais si je reviens et que je veux en modifier qu'une ou deux
cela m'efface d'autres valeurs.
Est ce que quelqu'un a une idée sur le pourquoi du comment....!!!!!!!!
merci d'avance

@+

Hors ligne

#19 28-11-2009 11:30:49

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

Salut,
Met le code pour une des liste qui ne se met pas a jour.
a++

Hors ligne

#20 28-11-2009 12:02:00

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

C'est ce que j'ai fais, j'ai adapté le code pour chaque liste déroulante, et quand je modifie une liste cela en efface d'autres.
J'ai tout réécris ( cela ne change rien )et ce qui est bizare c'est qu'il y a des listes qui ne sont jamais touchées .
@+

Hors ligne

#21 28-11-2009 12:05:02

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

Met le code sur le site wink
uniquement le code concernant les listes qui on des problèmes wink
a++

Hors ligne

#22 28-11-2009 13:28:35

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

Désolé je n'avais pas tout compris

Par exemple le premier code efface le second


<?php
           include('connexion.php');
                ?>
              <select name="Caisse" id="Caisse"/>              
              <option value=""><?php echo $donnees['Caisse']; ?></option>
              <?php
                $resultat=mysql_query("select Code_article from caisse order by Code_article") or die ("requète non executé");
                if (! $resultat) { echo "Erreur requete"; exit;}
                while ($ligne=mysql_fetch_array($resultat))
                {
                ?>
              <option<?php echo $donnees['Caisse']==$ligne['Code_article'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['Code_article'].'';?> </option>
              <?php
                }
                mysql_close($connexion);
                ?>
 

<?php
               include('connexion.php');;
                ?>
              <select name="Alu" id="Alu"/>
              <option value=""><?php echo $donnees['Alu']; ?></option>
              <?php
                $resultat=mysql_query("select alu from alu order by alu") or die ("requète non executé");
                if (! $resultat) { echo "Erreur requete"; exit;}
                while ($ligne=mysql_fetch_array($resultat))
                {
                ?>
              <option<?php echo $donnees['Alu']==$ligne['alu'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['alu'].'';?> </option>
              <?php
                }
                mysql_close($connexion);
               ?>

 

Mais le premier n'efface pas le troisième


              <?php
              // ceci est le fichier lambda.php
              // on ouvre la connexion MySQL
              include('connexion.php');;
                ?>
              <select name="Client" id="Client"/>
              <option value=""><?php echo $donnees['Client']; ?></option>
              <?php
                $resultat=mysql_query("select client from client order by client") or die ("requète non executé");
                if (! $resultat) { echo "Erreur requete"; exit;}
                while ($ligne=mysql_fetch_array($resultat))
                {
                ?>
              <option<?php echo $donnees['Client']==$ligne['client'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['client'].'';?> </option>
              <?php
                }
                mysql_close($connexion);
               ?>
 

Merci à toi de prendre du temps pour m'aider de nouveau
@+

Dernière modification par infograph61 (28-11-2009 14:12:26)

Hors ligne

#23 28-11-2009 14:12:44

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

Salut,

deja tu vires ces 2 lignes :

<option value=""><?php echo $donnees['Alu']; ?></option>
<option value=""><?php echo $donnees['Caisse']; ?></option>


tu remplace ça :

<option<?php echo $donnees['Caisse']==$ligne['Code_article'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['Code_article'].'';?> </option>

par ça :

<option value "<?php echo {$ligne[XXXX_article]}; ?>" <?php echo $donnees['Caisse']==$ligne['Code_article'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['Code_article'].'';?> </option>

put1 d'forum, y defrorme c'ke j'di big_smile:D

remplace XXXX pas Code au dessus


tu remplace ça :

<option<?php echo $donnees['Alu']==$ligne['alu'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['alu'].'';?> </option>

par ça :

<option value "<?php echo {$ligne['alu']}; ?>" <?php echo $donnees['Alu']==$ligne['alu'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['alu'].'';?> </option>

avec ça, tu devrais avoir une balise SELECT standard wink

a++

Dernière modification par Pierrot (28-11-2009 14:18:58)

Hors ligne

#24 28-11-2009 14:25:22

infograph61
Membre
Inscription : 25-09-2009
Messages : 74

Re : [Résolu] Formulaire de modification avec liste de déroulante

J'ai message d'erreur sur la ligne :
<option value "<?php echo {$ligne['alu']}; ?>" <?php echo $donnees['Alu']==$ligne['alu'] ? ' SELECTED ':'';  ?>><?php echo ''.$ligne['alu'].'';?> </option>

Hors ligne

#25 28-11-2009 14:26:46

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Formulaire de modification avec liste de déroulante

>>J'ai message d'erreur sur la ligne :

j'vois rien dans ma boule de cristal smile

ce serai bien de me dire qu'el message d'erreur wink

a++

Hors ligne

Pied de page des forums