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 :

menu deroulant et lecture de fichier


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut menu deroulant et lecture de fichier
    Bonjour,

    J'ai un petit souci.. je débute dans le php. J'ai créé un menu déroulant répertoriant tous mes fichiers d'un répertoire. Ces fichiers contiennent des valeurs avec lesquelles je souhaite faire un graph. DOnc je veux pouvoir sélectionner une date et ensuite ouvrir le fichier sélectionner pour ensuite le traiter..et je n'y arrive pas ,meme en ayant lu pas mal de tutoriaux, ça n'est toujours pas clair..

    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
     
    $dir="C:\\wamp\\mysql\\data\\stage\\save_table";
    $files = array();
    $res = "";
    $handle = opendir($dir);
    while($file = readdir($handle)) {
        if($file != "." && $file != "..") { //supprime les fichiers . et .. qui sont par défaut dans le répertoire 
            $files[] = $file;
        }
    }
    closedir($handle);
     
    //natsort($files); // Tri du tableau
    $res .= '<select date="'.$date.'">';
    foreach($files as $v) {
        $res .= "<option value='".$v."'>".$v."</option>";
    }
    echo $res;
    $res .= '</select>';
     
    $fichier = 'C:\\wamp\\mysql\\data\\stage\\save_table\\$res'; 
    $fp = fopen($fichier,'r'); 
    echo "Fichier ouvert";
    Je me doute bien que la fin de mon programme ne ressemble à rien!!lol. J'essaye mais je ne trouve pas!!Merci pour votre aide et bonne journée

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Déjà, ça c'est faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = 'C:\\wamp\\mysql\\data\\stage\\save_table\\$res';
    Mets la chaîne entre double quotes

    Après, je ne sais plus s'il faut mettre des slashes ou backslashes pour le chemin ...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Merci pour ton aide. J'ai fait les modif c'est a dire remplacer les '....' par des "...." mais ça ne change rien. Et pour les antislaches j'ai déjà utiliser et ça marche. Si tu a d'autres idées n'hésite pas, merci

  4. #4
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Chengj à raison.
    Ca marchera pas cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $fichier = 'C:\\wamp\\mysql\\data\\stage\\save_table\\$res'; 
    $fp = fopen($fichier,'r'); 
    echo "Fichier ouvert";
    Un gros problème apparait un tout petit peu plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $res .= '<select date="'.$date.'">';
    foreach($files as $v) {
        $res .= "<option value='".$v."'>".$v."</option>";
    }
    echo $res;
    $res .= '</select>';
    Ta variable $res vaut <select date="$date"><blabla... , hors je n'ai encore jamais vu de fichier qui commence par <select.

    A confirmer mais cela passerai surement mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fichier = 'C:\\wamp\\mysql\\data\\stage\\save_table\\$v;
    Mais tu doit sortir $v du foreach sinon il ne sera pas accessible.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Ok je n'avais pas mis tout mon code pour ne pas allourdir mais je pense que pour vous que vous compreniez il est nécessaire que je le mette:
    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
    //Recuperer les dates des sauvegardes
    $dir="C:\\wamp\\mysql\\data\\stage\\save_table";
    $files = array();
    $res = "";
    $handle = opendir($dir);
    while($file = readdir($handle)) {
    	if($file != "." && $file != "..") { //supprime les fichiers . et ..   qui sont par défaut dans le répertoire 
    		$files[] = $file;
    	}
    }
    closedir($handle);
     
    //natsort($files); // Tri du tableau
    $res .= '<select date="'.$date.'">';
    foreach($files as $v) {
    	$res .= "<option value='".$v."'>".$v."</option>";
    }
    echo $res;
    $res .= '</select>';
     
    $fichier = 'C:\\wamp\\mysql\\data\\stage\\save_table\\$v';
    $fp = fopen($fichier,'r');
    echo "Fichier bien ouvert";
    J'ai testé ce que tu m'a dis mais ça ne marche pas. Je récupère bien toutes les dates des sauvegardes effectuées, mais après je n'arrive toujours pas à récupérer la valeur choisie par l'utilisateur. Merci à tout ceux qui pourraient me lancer des pistes, ou m'aider.. Bonne journée

  6. #6
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Si je comprends bien tu arrives à créer dynamiquement ton "select" avec différentes dates ... Mais tu n'arrives pas à récupérer la valeur choisie dans ce "select" par un utilisateur ...
    Il faudrait donner un "name" à ton "select" et ensuite tu récupères la valeur en utilisant soit $_GET ou $_POST en fonction de la method que tu utilises dans ton "form".

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Oui tu as bien compris mon problème. Je débute en php donc je galère un peu... Quand tu parles de select et form, dis moi si je me trompe mais je dois l'enlever du code php? Je sais pas si tu as un peu de temps pour m'écrire les grandes lignes de code..mais je vais chercher. Merci pour ta réponse

  8. #8
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Peux tu me montrer le code de ton formulaire ...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai un peu avancé... je t'envois ce que j'ai pour le moment:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <form method="post" action="stage.php">
       <font color="#330099"><h4> Date list: </h4></font>
     
    <?php
     
    //Recuperer les dates des sauvegardes
    $dir="C:\\wamp\\mysql\\data\\stage\\save_table";
    $files = array();
    $res = "";
    $handle = opendir($dir);
    while($file = readdir($handle)) {
    	if($file != "." && $file != "..") { //supprime les fichiers . et ..   qui sont par défaut dans le répertoire 
    		$files[] = $file;
    	}
    }
    closedir($handle);
     
    //natsort($files); // Tri du tableau
    $res .= '<select date="'.$date.'">';
    foreach($files as $v) {
    	$res .= "<option value='".$v."'>".$v."</option>";
    }
    echo $res;
    $res .= '</select>';
    ?>
     
    <form action="stage.php" method="post">
    <input type="submit" name="date"
      value="-- Send --" size="30">
    </form>
    </br>
     
    <?php
    echo $_POST['date'];
    ?>
    Dans le menu déroulant j'ai bien toutes les valeurs. Ensuite je souhaite tout faire sur une même page: stage.php. Lorsque j'appuie sur le bouton send, il semble qu'une action se passe mais je ne récupère pas la date en affichage (avec le echo $_POST['date']). Je continue de chercher...

  10. #10
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Là en récupérant $_POST['date'] tu essayes de récupérer la valeur de ton bouton "submit", puisque c'est le bouton "submit" qui a le "name" ==> "date".
    Ensuite il ne faut pas imbriquer des formulaires les uns dans les autres.
    J'ai modifié ton code comme ceci :
    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
    24
    25
    26
    27
    28
    29
    30
    <form method="post" action="stage.php">
    <font color="#330099">
    <h4> Date list: </h4></font>
    <?php
    //Recuperer les dates des sauvegardes
    $dir="C:\\wamp\\mysql\\data\\stage\\save_table";
    $files = array();
    $res = "";
    $handle = opendir($dir);
    while($file = readdir($handle)) {
    	if($file != "." && $file != "..") { //supprime les fichiers . et ..   qui sont par défaut dans le répertoire 
    		$files[] = $file;
    	}
    }
    closedir($handle);
     
    //natsort($files); // Tri du tableau
    $res .= '<select name="sauv_date">';
    foreach($files as $v) {
    	$res .= "<option value='".$v."'>".$v."</option>";
    }
    $res .= '</select>';
    echo $res;
    ?>
    <input type="submit" value="-- Send --" size="30">
    </form>
    </br>
    <?php
    echo $_POST['sauv_date'];
    ?>

  11. #11
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Normal que ma solution ne marche pas il faut sortir $v de la boucle foreach, car sinon $v n'existe que pour foreach.

    Mais au vu de l'explication de toute façon ce n'est pas ce que tu voulais, il faut comme le dit jumano utiliser un form pour récupérer la valeur selectionné, désolé de t'avoir mener sur une fausse piste vis à vis de tes besoins.

    Dans ce que je te donner comme explication on n'avait que le dernier élément de la liste pris en compte (vu que $v valait le dernier fichier du tableau $files)

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Merci pour votre aide ça fonctionne parfaitement! Si vous avez du temps pourriez vous juste m'expliquer la boucle foreach, car j'ai du mal à voir comment elle fonctionne. Merci beaucoup!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $res .= '<select name="sauv_date">';
    foreach($files as $v) {
    	$res .= "<option value='".$v."'>".$v."</option>";
    }
    $res .= '</select>';
    echo $res;

  13. #13
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Un peu de lecture dans les Cours PHP

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

Discussions similaires

  1. [AJAX] Lecture et affichage du contenu d'un fichier xml dans un menu deroulant
    Par undercrash dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/01/2008, 17h26
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 12h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 12h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 21h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 10h43

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