Récupérer un champ de type enum

Résolu/Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 23 août 2009 à 10:08
barryblanc17 Messages postés 10 Date d'inscription jeudi 10 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013 - 11 janv. 2013 à 14:14
Bonjour,

J'ai un formulaire et en cas de changement de ma liste déroulante il faut répercuter la modification dans deux endroits (MySQL et le code HTML)

Je ne sais vraiment pas comment faire juste que j'ai mon champ est de type enum.
Je vous envoie un script que j'ai récupérer sur le net mais voilà je n'ai aucune idée pour le mettre en place sur mon site.
Pouvez m'aider s'il vous plait.
Un grand merci à vous.

[code=php]
<?php
//==========================================================
//requête MYSQL pour construire les menus déroulants à partir d'un champ de type ENUM

function menu_deroulant($nom_champ,$nom_table)
{
$result_menu_deroulant=mysql_query("DESCRIBE $nom_table");
while ($row=mysql_fetch_assoc($result_menu_deroulant))
{
$field=$row['Field'];//field contient le nom du champ
$type=$row['Type'];//type contient le type du champ
if ((substr($type,0,4)=="enum") AND ($field==$nom_champ))
{
$type=substr($type,5);
$type_2=explode(",",$type);
for ($i=0;$i<count($type_2);$i++)
{
$type_2[$i]=ereg_replace("'","",$type_2[$i]);
$type_2[$i]=ereg_replace(")","",$type_2[$i]);
$nom_var_select=$field."_select";
$$nom_var_select=$$nom_var_select."<option value=\"$type_2[$i]\">$type_2[$i]</option>\r\n";
}
}
}
return $$nom_var_select;
}
//==========================================================
?>
/code

19 réponses

fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 10:13
il n'est jamais bon de reprendre un code sur le net quand on ne le comprend pas. En effet, il se peut qu'il ne corresponde pas dutout à tes attentes, et tu ne progresseras pas.

Il faut retaper le code entièrement à mon sens, ce n'est vraiment pas difficile.

Que veux-tu faire EXACTEMENT ? Explique-toi mieux
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 10:17
Bonjour,

J'ai une liste déroulante que je souhaite modifier lorsque cela est nécessaire.
Mais afin d'éviter de modifier dans ma BDD et dans mon form avec un champ de type enum comme ça je modifie uniquement dans ma BDD..
Mais voilà le hic, je ne sais pas faire.

Merci de votre aide.
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 10:37
Il est possible de modifier un menu déroulant sans passer par le serveur (sans modifier ta BDD qui, si j'ai bien compris, te donne les éléments de ta liste déroulante)
Il faut passer par le javascript.
Le javascript te permet de modifier le contenu HTML en dynamique.

ex :

<html>
<head>
<script>
function modif()
{
document.getElementById('menuderoulant').innerHTML="<select name=xxx><option value=1> item1 </option><option value=2> item2 </option><option value=3> item3 </option><option value=4> item4 </option></select>";
}
</script>
</head>

<body>

<div id=menuderoulant>
<select name=xxx>
<option value=1> item1 </option>
<option value=2> item2 </option>
</select>
</div>

<br><br>
<input type=button value=modif onclick="modif()">


</body>
</html>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 11:53
Bonjour,
Un grand merci pour ta réponse ça fonctionne plus besoin de toucher à ma BDD.

Pour modifier ma liste déroulante par contre avec le button "onclick" ça ne marche pas, tu peux encore m'aider s'il te plait.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 12:10
moi ca marche
donne moi ton code stp
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 12:12
le code de toute ma page ?
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 12:15
ben oui. Comment veux-tu que je décelle une erreur si je n'ai pas tout le code ?
Du moins la partie ou cela ne fonctionne pas ...
le site est en ligne ? il est possible de le voir ? je verrai ainsi le code
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 12:20
<head>
<script>
function modif()
{
document.getElementById('Pupitre').innerHTML="<select name=user_pupitre>
<option value=Saxophone> Saxophone </option>
<option value=Cor> Cor </option>
<option value=Clairon> Clairon </option>
</select>";
}
</script>
</head>

<body>
<td>Pupitre :</td>
<td><select name=user_pupitre>
<option class="first" value="<?php echo @$rows->pupitre ?>"><?php echo @$rows->pupitre ?></option>
<option value=Saxophone> Saxophone </option>
<option value=Cor> Cor </option>
<option value=Clairon> Clairon </option>
</select>
<input type=button value=modif onclick="modif()"></td>
</body>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 12:22
Excuse moi j'ai oublié.........
non mon site est pas encore en ligne
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 12:32
fais plutôt ceci :

function modif()
{
document.getElementById('Pupitre').innerHTML="<select name=user_pupitre><option value=Saxophone>Saxophone </option><option value=Cor> Cor </option><option value=Clairon> Clairon</option></select>";
}


En javascript, il ne faut pas faire des retour chariot pour les chaînes. Tu verras ca marchera comme ça.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 12:49
En cliquant sur modif il y a rien qui se passe ?
Alors si tu peux encore m'aider?

Merci
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 13:07
normal, tu n'as pas repris mon script, dont je te rappelle une partie :

<div id=menuderoulant>
<select name=xxx>
<option value=1> item1 </option>
<option value=2> item2 </option>
</select>
</div>


C'est le DIV qui fait la différence. Si tu lis bien mon script, dans la fonction javascript modif(), je fais appel au champ dont l'id est menuderoulant :
document.getElementById('Pupitre').innerHTML

Si tu ne définis pas <div id=menuderoulant> , ca ne risque pas de marcher ...
reprends bien mon code, et modifie-le petit à petit pour que ca marche...

mon code fonctionne. A partir de lui, tu y parviendras.

Bon Courage
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 16:07
Bonjour,

Un très grand merci ça fonctionne à merveille après une bonne sieste.

Super
Merci beaucoup
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 20:00
Bonjour

C'est encore moi concernant ma liste déroulante.

En fait je voudrais faire la même chose sur mes deux listes déroulante.

Au niveau du script c'est la même chose?

Merci de votre aide
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 20:35
- ce qui va modifier ta liste déroulante c'est le script javascript
- ce qui va déclencher la modification de ta liste déroulante, c'est ce que l'on appelle un évènement (onclick, ou autre)

Je ne sais pas si la modification de tes 2 menus déroulants sont déclenchés par le même évènement...
Mais le principe est évidemment le même.

Il me manque donc des éléments pour te répondre précisément.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 20:53
Je te fait voir les 3 listes déroulantes pour le javascript...

<script>
function modif()
{
document.getElementById('listepupitre').innerHTML="<select name=user_pupitre><option value=Saxophone>Saxophone</option><option value=Porte drapeau>Porte drapeau</option><option value=Chef de musique>Chef de musique</option><option value=Cor>Cor</option><option value=Trompette de cavalerie>Trompette de cavalerie</option><option value=Clairon>Clairon</option><option value=Basse>Basse</option><option value=Percussion>Percussion</option><option value=Tambour>Tambour</option></select>";
}
{
document.getElementById('listebureau').innerHTML="<select name=user_statut><option value=President (e)>President (e)</option><option value=President (e) Adjoint (e)>President (e) Adjoint (e)</option><option value=Tresorier (e)>Tresorier (e)</option><option value=Tresorier (e) Adjoint (e)>Tresorier (e) Adjoint (e)</option><option value=Secretaire>Secretaire</option><option value=Secretaire Adjoint (e)>Secretaire Adjoint (e)</option></select>";
}
{
document.getElementById('listestatut').innerHTML="<select name=user_bureau><option value=Executant>Executant</option><option value=Debutant>Debutant</option><option value=Eveil musical>Eveil musical</option><option value=Non musicien>Non musicien</option><option value=Sortant>Sortant</option></select>";
}
</script>
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 22:25
oula !

ne ferme pas tes acolades ! Tu devrais apprendre la base de la programmation !
A quoi servent les acolades à ton avis ?

function xxx()
{ contenu de la fonction
}

si tu ouvres d'aures acolades, ca ne veut rien dire !


fais comme ceci :



<script>
function modif()
{
document.getElementById('listepupitre').innerHTML="<select name=user_pupitre><option value=Saxophone>Saxophone</option><option value=Porte drapeau>Porte drapeau</option><option value=Chef de musique>Chef de musique</option><option value=Cor>Cor</option><option value=Trompette de cavalerie>Trompette de cavalerie</option><option value=Clairon>Clairon</option><option value=Basse>Basse</option><option value=Percussion>Percussion</option><option value=Tambour>Tambour</option></select>";

document.getElementById('listebureau').innerHTML="<select name=user_statut><option value=President (e)>President (e)</option><option value=President (e) Adjoint (e)>President (e) Adjoint (e)</option><option value=Tresorier (e)>Tresorier (e)</option><option value=Tresorier (e) Adjoint (e)>Tresorier (e) Adjoint (e)</option><option value=Secretaire>Secretaire</option><option value=Secretaire Adjoint (e)>Secretaire Adjoint (e)</option></select>";


document.getElementById('listestatut').innerHTML="<select name=user_bureau><option value=Executant>Executant</option><option value=Debutant>Debutant</option><option value=Eveil musical>Eveil musical</option><option value=Non musicien>Non musicien</option><option value=Sortant>Sortant</option></select>";
}
</script>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 22:53
Tu )peux me dire ce que tu penses comme ça?
En fait je voudrais que les 3 buttons onclik gére séparément chacune des 3 listes.

Merci encore

<td>Statut :</td>
<td><div id=listestatut>
<select name="user_statut">
<option class="first" value="<?php echo @$rows->membre ?>"><?php echo @$rows->membre ?></option>
</select>
</div>
<input type=button value=modif onclick="modif()"></td>

<td>Pupitre :</td>
<td><div id=listepupitre>
<select name="user_pupitre">
<option class="first" value="<?php echo @$rows->pupitre ?>"><?php echo @$rows->pupitre ?></option>
</select>
</div>
<input type=button value=modif onclick="modif()"></td>
</tr>
<tr>

<td>Bureau :</td>
<td><div id=listebureau>
<select name="user_bureau">
<option class="first" value="<?php echo @$rows->bureau ?>"><?php echo @$rows->bureau ?></option>
</select>
</div>
<input type=button value=modif onclick="modif()"></td>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 23:13
En fait c'est la seule chose qui ne fonctionne pas comme je souhaite.

Car lorsque je doit modifier uniquement 1 des 3 listes en faisant onclik cela me propose de modifier les 3 listes à la fois, c'est pour ça qu'il faudrait que les 3 buttons fonctionnent séparément.

Merci infiniment de ton aide
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
23 août 2009 à 23:24
tout à fait normal ! Tu fais appel à chaque fois à la même fonction qui modifie les 3 listes en même temps ...

Fais 3 fonctionns séparées et appelle chacune d'entre elles en fonction du bouton :

<script>
function modif1()
{
document.getElementById('listepupitre').innerHTML="<select name=user_pupitre><option value=Saxophone>Saxophone</option><option value=Porte drapeau>Porte drapeau</option><option value=Chef de musique>Chef de musique</option><option value=Cor>Cor</option><option value=Trompette de cavalerie>Trompette de cavalerie</option><option value=Clairon>Clairon</option><option value=Basse>Basse</option><option value=Percussion>Percussion</option><option value=Tambour>Tambour</option></select>";
}

function modif2()
{
{
document.getElementById('listebureau').innerHTML="<select name=user_statut><option value=President (e)>President (e)</option><option value=President (e) Adjoint (e)>President (e) Adjoint (e)</option><option value=Tresorier (e)>Tresorier (e)</option><option value=Tresorier (e) Adjoint (e)>Tresorier (e) Adjoint (e)</option><option value=Secretaire>Secretaire</option><option value=Secretaire Adjoint (e)>Secretaire Adjoint (e)</option></select>";
}

function modif3()
{
{
document.getElementById('listestatut').innerHTML="<select name=user_bureau><option value=Executant>Executant</option><option value=Debutant>Debutant</option><option value=Eveil musical>Eveil musical</option><option value=Non musicien>Non musicien</option><option value=Sortant>Sortant</option></select>";
}
</script>



PUIS :


<td>Statut :</td>
<td><div id=listestatut>
<select name="user_statut">
<option class="first" value="<?php echo @$rows->membre ?>"><?php echo @$rows->membre ?></option>
</select>
</div>
<input type=button value=modif onclick="modif1()"></td>

<td>Pupitre :</td>
<td><div id=listepupitre>
<select name="user_pupitre">
<option class="first" value="<?php echo @$rows->pupitre ?>"><?php echo @$rows->pupitre ?></option>
</select>
</div>
<input type=button value=modif onclick="modif2()"></td>
</tr>
<tr>

<td>Bureau :</td>
<td><div id=listebureau>
<select name="user_bureau">
<option class="first" value="<?php echo @$rows->bureau ?>"><?php echo @$rows->bureau ?></option>
</select>
</div>
<input type=button value=modif onclick="modif3()"></td>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 août 2009 à 23:48
Super génial ça fonctionne merveilleusement bien.

Un très grand merci
0
barryblanc17 Messages postés 10 Date d'inscription jeudi 10 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013
11 janv. 2013 à 14:14
Bonjour

Une question même si vieux poste j'ai crée un menu déroulant sans base de donnée dont voici le code

div id=menuderoulant>
<select name=boreales002>
<option value=Disponible> Disponible </option>
<option value=Optionné> Optionné </option>
<option value=Vendu> Vendu </option>
</select>
<input type=button value=modif onclick="modif()">
</div>

je voudrais que lorsque je sélectionne optionné par exemple cela se modifie sur le site directement .

la deuxième partie :

<script>
function modif()
{
document.getElementById('menuderoulant').innerHTML="<select name=boreales002><option value=Disponible> Disponible </option><option value=Optionné> Optionné </option><option value=Vendu> Vendu </option></select>";
}
</script>


Aujourd'hui quand je clique sur modif cela me remet la première valeur et modif disparait .
Help je ne comprend pas !!!
0