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

page 1 page 2
Répondre
Cafe Solo
Cafe Solo
Déconnecté
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 ce 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
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Oui faut mettre un selected sur la valeur que tu veux voir apparaitre par defaut dans le menu.
Cafe Solo
Cafe Solo
Déconnecté
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 ce lien)


J'ai essayé plusieurs endroits, mais niet,
Merci de votre compréhension...
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
tu recupere ton champs..
exemple avec 1 ,2 ,3 ,4 ,5
le champs contient 3
  1. <?  
  2. echo '
  3. <select name="chiffre">';  
  4. for($i=1;$i <= 5;$i++) {  
  5. $selecte = ($i == $truc['chiffre']) ? ("selected") : ("");  
  6. echo'
  7. <option value="'.$i.'" '.$selected.'>'.$i.'</option>';  
  8. }  
  9. echo '</select>';  
  10. ?>
  11.  


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.
Cafe Solo
Cafe Solo
Déconnecté
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à...

; )

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

[code]<?// 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
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
$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.
Cafe Solo
Cafe Solo
Déconnecté
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 :

  1. <?php
  2. function enum_options($champs, $id_lien)  
  3. {            $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); 
  4.    if (eregi("('.*')", $donnees_rech["Type"], $correspondance ))         { 
  5.    $ch_enum = ereg_replace ("'", "", $correspondance[1]); 
  6.    $option_enum = explode (',' , $ch_enum);            return $option_enum;         }            else return 0;      
  7. }php ?> 


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


I need your help yet : (
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
et si tu met :
$selected = ($tableau[$i] == $tableau['Format_Film']) ? ('selected') : ('');
Cafe Solo
Cafe Solo
Déconnecté
j'y ai cru très fort, je te mettais déjà une sixième étoile... ; )
Ben non, pas de bug mais changement... : ((
Cafe Solo
Cafe Solo
Déconnecté
pas de bug mais pas dechangement
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
toujours pareil mais tu change les values de ton select =>
<option value="'.$tableau[$i].'" '.$selected.'>'.$tableau[$i].'</option>
Cafe Solo
Cafe Solo
Déconnecté
Pas de bug, pas de changement...
En copié-collé on en est là :
  1. <?php  
  2.  
  3. echo '<select name="Format_Film" SIZE="1">';  
  4. for($i=0;$i < count($tableau) ; $i++)      {            $selected = ($tableau[$i] == $tableau['Format_Film']) ? ('selected') : (''); 
  5.    echo' <option value="'.$tableau[$i].'" '.$selected.'>'.$tableau[$i].'</option>'; 
  6.    }            echo '</select>';  
  7. php ?> 


Merci encore...
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
tres bien bon...
avant la boucle tu fais :

1. echo $tableau['Format_Film'];
2. print_r($tableau)

tu met en commentaire ta boucle et met moi le resultat.
Cafe Solo
Cafe Solo
Déconnecté
Ben y a rien de plus qui s'affiche après cet echo et ce print...

  1. <?php  
  2. echo '<BR><BR><select name="Format_Film" SIZE="1">';  
  3. echo $tableau['Format_Film'];  
  4. print_r($tableau);  
  5.  
  6. // La boucle
  7. for($i=0;$i < count($tableau) ; $i++) 
  8.    { 
  9.    $selected = ($tableau[$i] == $tableau['Format_Film']) ? ('selected') : (''); 
  10.    echo' <option value="'.$tableau[$i].'" '.$selected.'>'.$tableau[$i].'</option>'; 
  11.    } 
  12.    echo '</select>';  
  13. php ?> 
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique