IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Liste déroulante à partir d'un fichier [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut Liste déroulante à partir d'un fichier
    Bonjour à tous !

    Je vous expose mon souçis:
    J'ai un fichier .txt qui contient une liste de sections :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CCS
    ECS
    ELM
    etc ...
    Je lis le fichier et je crée mes listes. Pas de problème de ce coté là !
    Cependant, j'aimerais que celui selectionné corresponde à une variable testée. En effet, j'appelle cette liste à l'edition d'un enregistrement d'une BDD.
    La variable $Code_Service contient un des services de la liste.

    Mais voilà le problème, je n'arrive pas à rentrer dans mon if alors que le $Code_service ( testé avec un echo ) contient bien une des valeurs de la liste !

    Autrement dit, ma liste est bien complète mais pas moyen de lui faire selectionner une des valeurs suivant la variable $Code_Service !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    echo '<tr><td>Code_Service: </td><td><select name="Code_Service">';		
    if(!$fp = fopen("code_service_belfort.txt","r"))
    {		
       echo 'Echec de l ouverture du fichier';
       exit;
    }
    else
    {
       while (!feof($fp)) 
       { 
          $ligne = fgets($fp, 1024);
          if($ligne == $Code_Service)
          {
             echo '<option selected>'.$ligne;
          }
          else
          {
             echo '<option>'.$ligne;
          }
       }
    echo '</td></tr>';
    }
    Quelque chose me dit qu'à la lecture, il y a des caractères qui s'inserent ou quelque chose du genre ...

    Une idée ?
    La politesse n'a jamais tué personne
    Le langage SMS c'est le mal !
    Pensez au tag

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    essaies ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          if(preg_replace('#(\r\n|\n|\r)#', '', $ligne) == $Code_Service)

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ton $ligne contient aussi les caractères de retour chariot :
    Tu peux utiliser trim() pour nettoyer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       while (!feof($fp)) 
       { 
          $ligne = fgets($fp, 1024);
          $ligne = trim($ligne);
          $selected = ($ligne == $Code_Service) ? ' selected="selected"' : "";
          echo '<option value="' . $ligne . '"' . $selected . '>'.$ligne . '</option>';
        }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    C'est dans ces moments que je me rends compte à quel point mes connaissances sont limitées

    Merci beaucoup, ça fonctionne !
    Dans le but d'informer les lecteurs ( surtout moi ! ), tu peux juste m'expliquer quel était le soucis et justifier l'utilisation de cette méthode avec ces arguments ?

    Bien cordialement.

    EDIT : Je vais également tester cette méthode, sabotage
    La politesse n'a jamais tué personne
    Le langage SMS c'est le mal !
    Pensez au tag

  5. #5
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    C'est simple, tu avais une chaine qui contenait des retours chariots qui peuvent être de la forme \r\n (windows) ou \n ou \r. le but de la fonction preg_replace est de remplacer un pattern (chaine) par une autre.

    Dans l'exemple donné le '#(\r\n|\n|\r)#' remplace \r\n OU \n OU \r par '' soit rien. Donc au final cela te supprime tes retours chariots et tu peux les comparer proprement à l'autre chaine

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Merci pour l'explication, ça me permet d'enrichir mes connaissances sur divers cas particuliers de traitement de données

    En espérant que ce topic soit utile à d'autres
    Bonne journée à vous !
    La politesse n'a jamais tué personne
    Le langage SMS c'est le mal !
    Pensez au tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] liste déroulante à partir de base de donnée
    Par nouna dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2012, 17h08
  2. Réponses: 5
    Dernier message: 29/06/2009, 11h57
  3. [XSLT] Générer une liste déroulante à partir d'un fichier xml ?
    Par chipster45 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2007, 09h59
  4. Chargement de liste déroulante à partir de fichiers
    Par ikeaboy dans le forum Langage
    Réponses: 4
    Dernier message: 11/07/2006, 15h36
  5. Réponses: 2
    Dernier message: 16/12/2005, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo