extraire la valeur sélectionné d'un champs type ENUM

Répondre
Cafe Solo
le 12/05/2004 à 10:26
Cafe Solo
Bonjour à tous,

Voila j'ai un formulaire destiné
à la modification de données
dans lequel j'extrait dans les champs
de saisie les valeurs actuellement dans la base,
sauf que j'ai le champs Format,
champs de type ENUM dans ma base;
pour extraire les valeurs
et crée la liste déroulante j'ai inséré une fonction,
sauf qu'au final j'ai bien mon menu déroulant avec les différent choix mais il n'est pas positionné sur
la valeur entré dans la base, il est systematiquement positionné sur la premiere valeur de la liste, voici un extrait du formulaire avec la fonction:
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1397]ce lien[/lien])


Pour l'instant j'ai eu la réponse suivante :
si non alors t'as jamais de 'selected' et la ben c normal qu'il affiche le premier


MAis là j'ai toujours pas trouvé ou pas assez chercher c'est selon...

Si quelqu'un a une solution, je prends...
LA GLOBULE
le 12/05/2004 à 10:56
LA GLOBULE
Oui faut mettre un selected sur la valeur que tu veux voir apparaitre par defaut dans le menu.
Cafe Solo
le 12/05/2004 à 15:03
Cafe Solo
La Globule je m'en sors pas,
j'y vois plus, OuFotildonKeKejeKase ce SELECTED
dans la portion de code suivante :

(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1399]ce lien[/lien])


J'ai essayé plusieurs endroits, mais niet,
Merci de votre compréhension...
zebden
le 13/05/2004 à 01:04
zebden
tu recupere ton champs..
exemple avec 1 ,2 ,3 ,4 ,5
le champs contient 3
<?
echo '
<select name="chiffre">';
for($i=1;$i <= 5;$i++) {
$selecte = ($i == $truc['chiffre']) ? ("selected") : ("");
echo'
<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
}
echo '</select>';
?>


Voila c'est une exemple tout simple , j'ai pas regardé le wall , mais en ayant la base tu devrais y arriver.
ce qui faut retenir c'est mettre le selected dans ll'<option> correspondant.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Cafe Solo
le 13/05/2004 à 10:15
Cafe Solo
Zebden,

J'ai essayé d'adapter ton code au mien, toujours celui présent dans le wall, en essayant de comprendre j'ai pensé que tu avais oublié un "d" à $selecte, $truc j'ai pas compris, donc je l'ai laissé,
Apache comprends très bien apparement, mais au final
pas de bug sauf que j'ai toujours la première valeur et maintenant au lien d'avoir les noms des champs j'ai un chiffre, donc un menu déroulant avec les options de 1 à 16 avec 1 comme valeur d'entrée systematiquement; 16, en effet, c'est bien le nombre d'options de mon champs Format_Film... ; )
mais bon, quitte à avoir des chiffres j'aimerais bien voir 3 ou 7 de temps en temps... ; )
Et en fait $selecte avec ou sans "d" pas de bug et même résultat... : (

A plus tard, j'espère...
Je continue à supprimer des lettres par-ci par là...

; )

<?php echo '<BR><BR><select name="Format_Film"  SIZE="1">'; 
for($i=1;$i < count($tableau) ; $i++)
{
$selected = ($i == $truc['Format_Film']) ? ("selected") : ("");
echo' <option value="'.$i.'" '.$selected.'>'.$i.'</option>';
}
echo '</select>'; php ?>
Cafe Solo
le 13/05/2004 à 11:01
Cafe Solo
à tout hasard, si il a sa place dans le monde de PHP et MySQL,
ça viendrait pas de ma fonction :

<?// Fonction enum_options qui genere un tableau en fonction des options du champs format      


function enum_options($champs, $id_lien)
{
$Film=$_GET['ID'];
$recherche="SHOW COLUMNS FROM prod_films_tbl LIKE '$champs' ";
$resultat=mySql_db_query("producteurs", $recherche, $id_lien);
if ( !$resultat) error_message (sql_error ());
$donnees_rech = mysql_fetch_array($resultat);
if (eregi("('.*')", $donnees_rech["Type"], $correspondance ))
{
$ch_enum = ereg_replace ("'", "", $correspondance[1]);
$option_enum = explode (',' , $ch_enum);
return $option_enum;
}
else return 0;
} ?>[code]
zebden
le 13/05/2004 à 12:23
zebden
$truc correspond au tableau retourné par mysql_fetch_array,
effectivement j'ai oublié un "d" a la variable selected.

mais tu veux faire un select avec des chiffres ou bien avec des noms ?
moi j'ai juste mis un exemple pour que tu comprennes qui n'avais rien à voir avec ton code mais si c'est des chiffres que tu met alors dans ce cas ca peut tres facilement d'adapter.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Cafe Solo
le 13/05/2004 à 14:53
Cafe Solo
Non, c'est les noms que je veux, je viens de modifier ton code, j'ai remplacer $truc par $tableau qui correspond dans mon code à la fonction qui extrait les options du champs Format_Film, là j'obtiens bien les nom mais toujours pas la valeur du champs, autrement dit ça arrive systèmatiquement sur la première option du champs format film.

Est-ce que ça vient de la fonction :

<?php
function enum_options($champs, $id_lien)
{ $Film=$_GET['ID']; $recherche="SHOW COLUMNS FROM prod_films_tbl LIKE '$champs' "; $resultat=mySql_db_query("producteurs", $recherche, $id_lien); if ( !$resultat) error_message (sql_error ()); $donnees_rech = mysql_fetch_array($resultat);
if (eregi("('.*')", $donnees_rech["Type"], $correspondance )) {
$ch_enum = ereg_replace ("'", "", $correspondance[1]);
$option_enum = explode (',' , $ch_enum); return $option_enum; } else return 0;
}php ?>


ou de ton code retouché qui l'appelle :
<?
$tableau = enum_options ('Format_Film', $id_lien);
echo '<BR><BR><select name="Format_Film" SIZE="1">';
for($i=0;$i < count($tableau) ; $i++) {
$selected= ($i == $tableau ['Format_Film']) ? ("selected") : (""); echo' <option value="'.$i.'" '.$selected.'>'.$tableau[$i].'</option>'; } echo '</select>'; ?>


I need your help yet : (
zebden
le 13/05/2004 à 15:37
zebden
et si tu met :
$selected = ($tableau[$i] == $tableau['Format_Film']) ? ('selected') : ('');
zebdinou pour les intimes / Blog : http://www.zebden.fr
Cafe Solo
le 13/05/2004 à 15:48
Cafe Solo
j'y ai cru très fort, je te mettais déjà une sixième étoile... ; )
Ben non, pas de bug mais changement... : ((
Répondre
LoadingChargement en cours