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

Webdesign & Ergonomie Discussion :

Comment gérer une même fenêtre modale appelée depuis différentes pages ?


Sujet :

Webdesign & Ergonomie

  1. #1
    Membre régulier Avatar de scrouet
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 280
    Points : 105
    Points
    105
    Par défaut Comment gérer une même fenêtre modale appelée depuis différentes pages ?
    Bonjour.

    J'aurais besoin d'un petit coup de main pour bien gérer mes fenêtre modales.
    En cherchant un peu j'ai trouvé pas mal de méthodes pour afficher une fenêtre modale, mais le code HTML de la fenêtre modale est écrit directement dans la fenêtre appelante. Or je préférerais éviter d'avoir à gérer plusieurs versions d'une même fenêtre modale.
    Je vais donner un exemple pour être plus clair.
    Je me suis fait un petit site perso pour gérer ma cave. Lorsque j'enregistre un cru, je peux être amené à créer une région de rattachement pour ce cru. De même lorsque je crée un producteur, lui aussi rattaché à une région. Dans les deux cas, c'est le même formulaire de création de région que j'appelle, mais depuis deux pages différentes. Aujourd'hui je fais ça en appelant un unique script saisir_region.php dans une nouvelle fenêtre de navigateur, ce qui passe à peu près sur un PC mais est nettement moins ergonomique sur une tablette. Comment puis-je faire pour transformer ce système en quelque chose de plus propre et plus "à la mode" ?

  2. #2
    Membre régulier Avatar de scrouet
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 280
    Points : 105
    Points
    105
    Par défaut
    Bonjour.

    J'ai résolu le problème en générant mes formulaires (uniquement les balises <form> et leurs enfants) via des scripts PHP que j'incorpore dans d'autres pages HTML avec la directive PHP include_once. Le traitement des formulaires (submit) se fait en AJAX avec jQuery.

    Petit exemple avec le formulaire pour ajouter/modifier un pays :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    /* Appel des fonctions communes */
    require_once 'fnc_commun.php';
    
    /*******************************************************************************/
    /* Variables
    /*******************************************************************************/
    $strFoncFrmPay = "frm_saisie_pays.php";   /* Nom fonction courante */
    $intDebugFrmPay = 0;                      /* Clef debug (niveau info croit avec valeur) */
    
    /*******************************************************************************/
    /* Corps du script
    /*******************************************************************************/
    /* Affichage du formulaire HTML */
    if ($intDebugFrmPay > 0) {
        ecrire_log("Construction du formulaire HTML...", "N", $strFoncFrmPay);}
    ?>
    <form class="modal" id="frmSaisiePays">
    
    <input type="hidden" id="Pay_ID" name="Pay_ID" value="0">
    
    <div class="bloc_form" id="blc_pay_nom">
        <label for="Pay_Nom">Pays</label>
        <input type="text" id="Pay_Nom" name="Pay_Nom" size="20" maxlength="20" value="" pattern="^[\w\-àâäéèêëîïôöùûüç& ]+$" required>
    </div>
    
    <div class="bloc_form" id="blc_pay_code">
        <label for="Pay_Code">Code</label>
        <input type="text" id="Pay_Code" name="Pay_Code" size="2" maxlength="2" value="" pattern="[A-Z]{2}" title="Code ISO 3166-1 alpha 2 sur deux lettres majuscules" required>
    </div>
    
    <div class="bloc_form" id="blc_pay_drapeau">
        <label for="Pay_Drapeau">Drapeau</label>
        <select id="Pay_Drapeau" name="Pay_Drapeau">
            <option value="">&nbsp;</option>
    <?php
    /* Affichage des fichiers PNG disponibles sous REP_DRAPEAUX */
    if ($intDebugFrmPay > 0) {
        ecrire_log("Construction de la liste des drapeaux de pays...", "N", $strFoncFrmPay);}
    $dirRepDrapeaux = dir(REP_DRAPEAUX);
    while($strFicDrapeau = $dirRepDrapeaux->read()) {
        if (strripos($strFicDrapeau,"png",-1) !== false) {
            print "        <option value=\"$strFicDrapeau\">$strFicDrapeau</option>\n";}
    }
    $dirRepDrapeaux->close();
    ?>
        </select>
        <img id="pay_img_drapeau" src="-" title="Drapeau du pays" alt="-">
    </div>
    
    <div class="bloc_form_boutons">
        <button type="submit" class="btnEnregistrer">Enregistrer</button>
        <button type="button" class="btnAnnuler">Annuler</button>
    </div>
    
    </form>

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

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