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 :

Deux listes à action sur la même page


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut Deux listes à action sur la même page
    Bonjour,

    J'ai adapté le code trouvé ici pour permettre à l'utilisateur d'envoyer plusieurs fichiers à l'application.

    Ça fonctionne très bien et le choix du nombre de fichiers à transférer multiplie effectivement le champ <INPUT type="file"> dans le formulaire principal de la page.

    J'ai voulu faire la même chose dans la même page pour permettre à l'utilisateur de poster plusieurs informations de même type, en l'occurrence des infos sur des exercices posés lors d'un examen. Le but de la page est en effet d'enregistrer une annale d'examen avec des infos pour chaque exercice de cet examen et accompagner l'examen de 1 à n fichiers.

    Malheureusement, lorsque l'utilisateur choisit le nombre de fichiers, le champ d'insertion du fichier se multiplie bien, mais quand il choisit ensuite le nombre d'exercices de l'examen, les champs relatifs aux exercices se multiplient bien mais il n'y a plus qu'une zone d'envoi de fichier.

    Voici mon 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    /* Code de téléversement de fichiers de Pierre Pesty 
     * récupéré sur http://dev.ppan.net/transfert-de-fichiers-upload-multiple.php 
     */
    $taillemax = 1024000; // taille max d'un fichier (multiple de 1024)
    $filetype = "/MS Word|MS Excel|OO Text| OO Calc|PDF|RTF/i"; // types de fichiers acceptés, séparés par |
    $nametype = "/\.doc|\.xls|\.odt|\.ods|\.pdf|\.rtf/i"; // extensions correspondantes
    $rep = "./annales/"; // répertoire de destination
    $maxfichier = 10; // nombre maximal de fichiers à téléverser
    $maxexercice = 10; // nombre maximal d'exercices à enregistrer
     
    // fichier courant (URI absolue) : formulaire récursif
    $PHP_SELF = basename($_SERVER['PHP_SELF']);
     
    // 1 fichier par défaut (ou supérieur à $maxfichier)
    $upload = (isset($_REQUEST['upload']) && $_REQUEST['upload'] <= $maxfichier) ? $_REQUEST['upload'] : 1;
    // 1 exercice par défaut (ou supérieur à $maxexercice)
    $nbexr = (isset($_REQUEST['nbexr']) && $_REQUEST['nbexr'] <= $maxexercice) ? $_REQUEST['nbexr'] : 1;
     
    ?>
    <p><strong>Ajouter une annale d'examen</strong></p>
     
    <!--  Choix du nombre de fichier(s) à transférer  -->
    <form action="<?php echo $PHP_SELF; ?>" method="post">
    Nombre de fichiers à transférer pour cet examen ?&nbsp;
        <select name="upload" onChange="window.open(this.options[this.selectedIndex].value,'_self')">
     
    <?php 
    for($i = 1; $i <= $maxfichier; $i++) 
    {
    ?>
            <option value="<?php echo $PHP_SELF."?upload=".$i; ?>"
                <?php if($i == $upload) echo " selected=\"selected\" "; ?>
            >
                <?php echo $i; ?>
            </option>
    <?php 
    } //Fin for($i=1; $i<=$maxfichier; $i++)
    ?>
        </select>
    <!--  Fin choix du nombre de fichier(s) à transférer  -->
        <br />
    <!--  Choix du nombre d'exercices à enregistrer  -->
    Nombre d'exercices à enregistrer pour cet examen ?&nbsp;
        <select name="nbexr" onChange="window.open(this.options[this.selectedIndex].value,'_self')">
     
    <?php 
    for($i = 1; $i <= $maxexercice; $i++) 
    {
    ?>
            <option value="<?php echo $PHP_SELF."?nbexr=".$i; ?>"
                <?php if($i == $nbexr) echo " selected=\"selected\" "; ?>
            >
                <?php echo $i; ?>
            </option>
    <?php 
    } //Fin for($i=1; $i<=$maxfichier; $i++)
    ?>
        </select>
    </form>
    J'avais essayé auparavant en faisant deux formulaires séparés, l'un pour choisir le nombre de fichier et l'autre pour choisir le nombre d'exercices mais c'était pareil.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Trouvé !
    J'ai complété les options des listes avec la valeur de l'autre liste :
    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
    <?php 
    for($i = 1; $i <= $maxfichier; $i++) 
    {
    ?>
            <option value="<?php echo $PHP_SELF."?upload=".$i.'&nbexr='.$nbexr; ?>"
                <?php if($i == $upload) echo " selected=\"selected\" "; ?>
            >
                <?php echo $i; ?>
            </option>
    <?php 
    } //Fin for($i=1; $i<=$maxfichier; $i++)
    ?>
     
    // ...
     
    <?php 
    for($i = 1; $i <= $maxexercice; $i++) 
    {
    ?>
            <option value="<?php echo $PHP_SELF."?nbexr=".$i.'&upload='.$upload; ?>"
                <?php if($i == $nbexr) echo " selected=\"selected\" "; ?>
            >
                <?php echo $i; ?>
            </option>
    <?php 
    } //Fin for($i=1; $i<=$maxfichier; $i++)
    ?>
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Deux scripts jquery sur la même page ?
    Par beegees dans le forum jQuery
    Réponses: 1
    Dernier message: 01/03/2011, 23h34
  2. [XL-2003] Imprimer deux graphes séparés sur la même page
    Par coklin dans le forum Excel
    Réponses: 3
    Dernier message: 14/12/2009, 10h25
  3. faires des actions sur la même page
    Par fraisa1985 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/08/2009, 12h20
  4. Réponses: 9
    Dernier message: 23/06/2008, 15h54
  5. ouvrir deux popup differents sur la même page ?
    Par King_T dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/05/2008, 20h19

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