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

jQuery Discussion :

Dialog box et dynamic table


Sujet :

jQuery

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut Dialog box et dynamic table
    Bonjour tout le monde,
    J'ai un tableau dynamique contenant plusieurs lignes.Pour chaque ligne , il y a un lien (image) permettant d'afficher un dialog box pour faire des modifications.
    Code html : 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
     <a class="openmodalbox"  >
    	img src="../images/consulter.png" width="30" height="30" title="Display information" />
     <span class="modalboxContent" >
                        <table width="400"  style="word-wrap:break-word;">
                        <tr>
                          <td colspan="2" align="center"><h2>Personal Information</h2></td>
                        </tr>
                        <tr>
                          <td width="138" class="infosemp" >Name</td>
                          <td width="260" class="infosemp2"><?php echo $row_rsAllEmp['EMPLOYEE_NAME']; ?></td>
                        </tr>
                        <tr>
                          <td class="infosemp">Surname</td>
                          <td class="infosemp2"><?php echo $row_rsAllEmp['EMPLOYEE_SURNAME']; ?></td>
                        </tr>
                        <tr>
                          <td class="infosemp">Phone</td>
                          <td class="infosemp2"><?php echo $row_rsAllEmp['EMPLOYEE_PHONE']; ?></td>
                        </tr>
                      </table>
     
       </span>
    </a>

    Voici le script utilisé pour afficher les dialog box :
    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
    $(function() {
        $('.openmodalbox').click(function() {
            $('.modalboxContent').dialog({
    		width: 'auto',
    		height:'auto',
    		resizable: false,
    		show: 'highlight',
    		hide: 'highlight',
    		overlay: { opacity: 0.5, background: 'black'},
                open: function() {
                    $('#myDate').datepicker({title:''}).blur();
                },
                close: function() {
                    $('#myDate').datepicker('destroy');
                },
     
            });
        });
     
    });
    $(document).mousedown(function(e) {
        var clicked = $(e.target); // get the element clicked
        if (clicked.is('.modalboxContent')  || clicked.is('.ui.dialog-titlebar')|| clicked.is('.ui-widget-header')|| clicked.parents().is('#ui-datepicker-div')) {
            return; // click happened within the dialog, do nothing here
        } else { // click was outside the dialog, so close it
            $('.modalboxContent').dialog("close");
        }
    });
    Mon problème est le suivant :
    Quand je clique sur le lien pour faire des modification à une seul enregistrement, tous les dialog boxes s'ouvrent en meme temps (pour tous les enregistrements) !!!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    En même temps, c'est ce que tu demandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Lors du clic sur un élément de classe .openmodalbox
    $('.openmodalbox').click(function() {
        // récupérer tous les éléments ayant la classe .modalboxContent
        // et leur appliquer la méthode .dialog()
        $('.modalboxContent').dialog({
    Si tu veux que l'ouverture ne s'applique qu'à un élément, il faut préciser lequel...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Le bloc dans le code html se trouve à l'intérieur d'une boucle do while php.

    Ils ont tous la meme classe. J'ai réussi à afficher un seul enregistrement mais en cliquant sur le meme lien, il m'affiche un autre enregistrement

    voici le nouveau code:
    Code javascript : 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
     
    $(function() {
        $('.openmodalbox').click(function() {
            $('.modalboxContent').dialog({
    		width: 'auto',
    		height:'auto',
    		resizable: false,
    		show: 'highlight',
    		hide: 'highlight',
    		open: function(event, ui) { SavedDataUpdtParntFrm(); }
     
            });
        });
    });
    $(document).mousedown(function(e) {
        var clicked = $(e.target); // get the element clicked
        if (clicked.is('.modalboxContent')  || clicked.is('.ui.dialog-titlebar')|| clicked.is('.ui-widget-header')|| clicked.parents().is('#ui-datepicker-div')) {
            return; // click happened within the dialog, do nothing here
        } else { // click was outside the dialog, so close it
            $('.modalboxContent').dialog("close");
        }
    });

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ca pourrait être sympa (voire constructif) d'essayer de comprendre ce que l'on te dit...

    Bref, on va répéter.
    récupère tous les éléments ayant la classe .modalboxContent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.modalboxContent').dialog({...});
    applique à tous les éléments récupérés la méthode .dialog().
    Ce qui signifie que lorsque tu cliques sur un élément, tu déclenches toutes les modalbox !
    Donc
    Si tu veux que l'ouverture ne s'applique qu'à un élément, il faut préciser lequel...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    J'ai compri ce que tu as dis Bovino, mais comment préciser l'élément ??

    Je débute avec ce genre de truc et je trouve du mal à trouver une solution

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est pourtant pas bien compliqué...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.openmodalbox').click(function() {
        $(this).find('.modalboxContent').dialog({...});
    });
    A part ça, la structure HTML est particulièrement moche... Une balise <table> dans un <span> dans un lien...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Je trouve pas des mots pour exprimer ma gratitude.

    You are the best Bovino

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Cher Bovino, je ne sais pourquoi le dialog box ne s'affiche qu'une seule fois !!

  9. #9
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Anibel Voir le message
    Cher Bovino, je ne sais pourquoi le dialog box ne s'affiche qu'une seule fois !!
    Bonsoir

    C'est vraiment un construction très particulière, votre problème vient du fait que le dialogue s'approprie l'élément "span" et son contenu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( ".openmodalbox" ).on( "click", function() {
        $( this ).find( ".modalboxContent" ).clone( true, true ).dialog({
    	// votre code
        });
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. Insertion dialog box dans feuille SDI
    Par Tom Joad dans le forum MFC
    Réponses: 3
    Dernier message: 12/04/2004, 00h04
  3. Lien MainFrame / Dialog Box
    Par Alexonthenet dans le forum MFC
    Réponses: 11
    Dernier message: 10/03/2004, 20h06
  4. comment faire un Dialog Box demi-transparent?
    Par Zorgz dans le forum MFC
    Réponses: 3
    Dernier message: 08/01/2004, 14h02
  5. [Win32]Open/Save Dialog Box
    Par Chance666 dans le forum Windows
    Réponses: 2
    Dernier message: 07/01/2004, 16h47

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