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 :

listes déroulantes liées php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 84
    Par défaut listes déroulantes liées php
    Bonjour,

    Voila je cherche a avoir un petit formulaire (sans bouton valider).
    Mon but est de créer 3 listes déroulantes.
    ma BDD est une arborescence de dossier/fichier, ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    dossier_source->dossier1->sous_dossier1->fichier1
                                             fichier2
                              sous_dossier2->fichier1
                              sous_dossier3->vide
     
                  ->dossier2->sous_dossier1->fichier1
                                             fichier2
     
                  ->dossier3->sous_dossier1->fichier1
     
                  ->dossier4->sous_dossier1->vide
     
                  ->dossier5->vide
    voila pour résumer tout les cas de figure

    je veux que ma 1ere liste affiche la liste des dossiers.
    Quand je choisi un dossier, la liste des sous_dossiers de ce dossier s'affiche sinon affiche vide; si il n'y a qu'un sous_dossier affiche la liste des fichiers ou affiche vide.
    Quand je choisi un sous_dossier, affiche la liste des fichiers ou affiche vide.

    Un peu de code:
    Code php : 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
     
    define("chemin","../dossier_source");
    $dossier=array();
    $sous_dossier=array();
    $fichier=array();
     
    function abc($dir){
       $sortie=array();
       $do=opendir($dir);
       while ($fi=readdir($do)){
          if ($fi !="." && $fi !=".."){
             $chemin=$dir.'/'.$fi;
             if(is_dir($chemin)){
                $sortie[]=$fi;
             }
          }
       }
       closedir($do);
       return $sortie;
    }
     
    function def($dir){
       $sortie=array();
       $do=opendir($dir);
       while ($fi=readdir($do)){
          if ($fi !="." && $fi !=".."){
             $chemin=$dir.'/'.$fi;
             if(is_file($chemin)){
                $sortie[]=$fi;
             }
          }
       }
       closedir($do);
       return $sortie;
    }
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
       $dossier=abc(chemin);
    ?>
    <form name='form1' method='POST' action=''>
    dossier:<select name="ledossier" size="1" id="dossier" onchange="form1.submit();">
       <option value "">choisir...</option>
       <?php																
          foreach($dossier as $undossier)
          {
       ?>
             <option <?php if (isset($_POST['ledossier']) && $_POST['ledossier']== $undossier){echo "selected";} ?>><?php echo $undossier; ?></option>
       <?php
          }
       ?>
    </select>
    </form>
    <form name='form2' method='POST' action=''>
    <?php
       if(isset($_POST['ledossier'])){
          $dossier = $_POST['ledossier'];
          $origine = chemin.'/'.$dossier;
          $sous_dossier= abc($origine);		
          if(count($sous_dossier)>=2){
             echo "sous_dossier:<select name='sous_dossier' size ='1' id='sous_dossier' onchange='form2.submit();'>";
                foreach($sous_dossier as $doss){	
                ?>
                   <option <?php if (isset($_POST['sous_dossier']) && $_POST['sous_dossier']== $doss){echo "selected";} ?>><?php echo $doss; ?></option>
                <?php
                }					
             echo"</select>";
          }elseif(count($sous_dossier) == 1){
             echo $sous_dossier[0];
             $origine2 = chemin.'/'.$dossier.'/'.$sous_dossier[0];
             $file = def($origine2);
             echo "sous_dossier: <select name='fichier' size ='1' id='sous_dossier' onchange='form2.submit();'>";
                foreach ($file as $fichier){
                   ?>
                   <option <?php if (isset($_POST['fichier']) && $_POST['fichier']== $fichier){echo "selected";} ?>><?php echo $fichier; ?></option>
                   <?php
                }								 
                echo "</select>";
             }else{
                echo "Il n'y a aucun fichier.";	
             }
          }	
          ?>				
    </form>
    voila mon cerveau commence à suffoquer maintenant
    je n'arrive plus a garder mes variables à partir de la 2eme sélection et donc j'ai peur pour la 3ème liste U_u'

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 84
    Par défaut
    Donc mon intuition était correcte, avec une troisième liste mon code allait foirer, il faut juste tout regrouper dans un seul form

    j'aime résoudre mes post
    merci à moi

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

Discussions similaires

  1. [AJAX] 3 listes déroulantes liées PHP/MYSQL/AJAX
    Par zied.ellouze dans le forum AJAX
    Réponses: 2
    Dernier message: 06/09/2011, 12h58
  2. 6 listes déroulantes liées php JavaScript mysql
    Par s1sofiane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2011, 10h10
  3. [AJAX] avec 3 listes déroulantes liées php+xhtml+css+javascript+ajax
    Par Invité dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/12/2008, 15h54
  4. [AJAX] Listes déroulantes liées php+ajax
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/07/2008, 15h31

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