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 :

Ouvrir une fenêtre modale sur clic d'un lien avec jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 80
    Par défaut Ouvrir une fenêtre modale sur clic d'un lien avec jquery
    Bonjour la communauté,
    j'ai une page sur laquelle j'affiche le résultat d'une requête avec plusieurs liens et sur chaque lien je mets un id dans l'attribut href dont voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<tbody><?php 
            while($repnommat=$sqlnommat->fetch_assoc()){  ?>
    		<tr><td><?php echo $repnommat['nom_mat']; $mid=$repnommat['id_mat']; ?></td>
                           <td><a id="openModalLink" href="#<?php echo $mid; ?>" title="Modifier les notes">Editer</a></tr>
    Et voici le code jquery:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     $(document).ready(function() {
     
        $("#openModalLink").click(function() {
          $('#myModale').modal('show');
        });
     
        $("#closeModalBtn").click(function(e) {
        	e.preventDefault();
          $('#myModale').modal('hide');
        });
     
    });
    En fin voici pour la fenêtre modale:
    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
    <!-- Modal -->
    <div class="modal fade" id="myModale" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    	<div class="modal-dialog" role="document">
    		<div class="modal-content">
    			<div class="modal-header hidden-print">
    				<div class="row">
    					<div class="col-md-12">
    						<div class="col-md-8"><h4 class="modal-title" id="myModalLabel">Mise à jour de la note</h4></div>
    						<div class="col-md-4">
    						</div>
    					</div>
    				</div>
    			</div>
    			<div class="modal-body">
    				<div class="row">
    					<div class="col-xs-12 col-sm-12 col-md-12">
    						<form name="form-enr-note" method="POST" action="">
    							<div class="col-md-12 form-group has-feedback">
    								<div class="col-sm-4 col-md-4">
    									<label for="anant">Mettre à jour la note</label>
    									<input type="text" class="form-control" id="noteecrite" name="noteecrite" value="">
    									<?php if(isset($erreurnecrite)) echo $erreurnecrite;  ?>
    								</div>
    								<div class="col-sm-2 col-md-2">
    									<label for="enr">Enregistrement</label>
    									<input type="submit" name="enregistrer" id="enr" value="Enregistrer" class="btn btn-primary pull-left">
    								</div>
    							</div>
    						</form>
    					</div>
    				</div>
    			</div>
    			<div class="modal-footer hidden-print">
    				<button id="closeModalBtn" type="button" class="btn btn-default">Close</button>
    			</div>
    		</div>
    	</div>
    </div>
    Le problème est que c'est le premier lien qui affiche la fenêtre modale les autres ne le font pas du tout!
    Donc vos solutions seront la bienvenue!

  2. #2
    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 : 75
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<tbody><?php 
    	while($repnommat=$sqlnommat->fetch_assoc()){  ?>
    		<tr><td><?php echo $repnommat['nom_mat']; $mid=$repnommat['id_mat']; ?></td>
                           <td><a id="openModalLink" href="#<?php echo $mid; ?>" title="Modifier les notes">Editer</a></tr>

    Un ID doit être unique dans la page web.

    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.)

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 80
    Par défaut
    Euh! Je fais comment maintenant?????????????????????

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    bonsoir,
    1-le deuxième td n'est pas fermé.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($repnommat=$sqlnommat->fetch_assoc()){  ?>
    		<tr>
                           <td><?php echo $repnommat['nom_mat']; $mid=$repnommat['id_mat']; ?></td>
                           <td><a id="openModalLink" href="#<?php echo $mid; ?>" title="Modifier les notes">Editer</a>
                    </tr>
    2-les éléments <a> sont crées dynamiquement, puis ils sont ajoutés directement dans des tr, sans table ?
    3-jQuery.click() ne fonctionnera pas pour ces éléments, il faut passer par un parent statique ou utiliser $(parentElement).on('click','element',function(){...}
    4- a mon avis si tu veux juste afficher #myModale
    dans ton cas tu devra enlever les id="openModalLink" et changer ta fonction ainsi :
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $("table").on("click","tbody tr td a",function(){
       $('#myModale').modal('show');
       alert($(this).attr("href"));//get href de l'élément.
    });

  5. #5
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 80
    Par défaut
    Ok merci Toufik83 pour votre aide, en fait j'ai mis le code complet et omis la fermeture de la seconde <td> sinon j'ai suivis votre conseil et voici le code complet:
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <html>
    <head>
    	<script src="/gsjm/scripts/js/jquery-1.11.3.min.js"></script>
    	<!-- Bootstrap -->
    	<link rel="stylesheet" href="/gsjm/boubou/css/bootstrap.css" />
    	<script type="text/javascript" src="/gsjm/boubou/js/bootstrap.js"></script>
    	<!-- Fin Bootstrap -->
    </head>
    <body>
    <script type="text/javascript">
     $(document).ready(function() {
    	$("table").on("click","tbody tr td a",function(){
    	   $('#myModale').modal('show');
    	   alert($(this).attr("href"));//get href de l'élément.
    	});
     
        $("#closeModalBtn").click(function(e) {
        	e.preventDefault();
          $('#myModale').modal('hide');
        }); 
    });
    </script>
    <table class="table">
    <thead><tr><th>Matiere</th><th>Notes</th></tr></thead>
    <tbody>
     
    <?php
    //Connexion à la base de données
    require('../scripts/php/connexion_db.php');
    $sqlnommat=$connexion->query("SELECT * FROM matieres"); 
    while($repnommat=$sqlnommat->fetch_assoc()){  ?>
    		<tr>
                           <td><?php echo $repnommat['nom_mat']; $mid=$repnommat['id_mat']; ?></td>
                           <td><a href="#<?php echo $mid; ?>" title="Modifier les notes">Editer</a></td>
                    </tr><?php
    }
    ?>
    </tbody>
    </table>
     
    <!-- Modal -->
    <div class="modal fade" id="myModale" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    	<div class="modal-dialog" role="document">
    		<div class="modal-content">
    			<div class="modal-header hidden-print">
    				<div class="row">
    					<div class="col-md-12">
    						<div class="col-md-8"><h4 class="modal-title" id="myModalLabel">Mise à jour de la note</h4></div>
    						<div class="col-md-4">
    						</div>
    					</div>
    				</div>
    			</div>
    			<div class="modal-body">
    				<div class="row">
    					<div class="col-xs-12 col-sm-12 col-md-12">
    						<form name="form-enr-note" method="POST" action="">
    							<div class="col-md-12 form-group has-feedback">
    								<div class="col-sm-4 col-md-4">
    									<label for="anant">Mettre à jour la note</label>
    									<input type="text" class="form-control" id="noteecrite" name="noteecrite" value="">
    									<?php if(isset($erreurnecrite)) echo $erreurnecrite;  ?>
    								</div>
    								<div class="col-sm-2 col-md-2">
    									<label for="enr">Enregistrement</label>
    									<input type="submit" name="enregistrer" id="enr" value="Enregistrer" class="btn btn-primary pull-left">
    								</div>
    							</div>
    						</form>
    					</div>
    				</div>
    			</div>
    			<div class="modal-footer hidden-print">
    				<button id="closeModalBtn" type="button" class="btn btn-default">Close</button>
    			</div>
    		</div>
    	</div>
    </div>
    </body>
    </html>
    Et sa fonctionne nickel avec cet ordre!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("table").on("click","tbody tr td a",function(){
    Vraiment Big up!
    Je voudrais maintenant récupérer l'attribut href dans la fenêtre modale et la je fais comment?????????????????

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    ou veux-tu mettre le href récupéré ? dans une zone de texte existante dans #myModal par exemple?
    si c'est ça, alors tu n'a qu'a ajouter une variable qui prend la valeur du href puis tu le met dans la zone de texte voulu.
    -n'oublis pas que les éléments <a> sont des liens, alors au moment du click le navigateur va chercher cette adresse qui est en href (rechargement...). pour éviter ça il faut ajouter un return false a la fin de la fonction click.
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $("table").on("click","tbody tr td a",function(){
       var Href=$(this).attr("href") ;
       $('#myModale').modal('show');
       $("#idzonedetext").val(Href);
       return false;// cette ligne est importante pour empêcher le navigateur de suivre le lien de href.
    });

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/03/2016, 16h21
  2. Réponses: 5
    Dernier message: 26/02/2016, 18h40
  3. Ouvrir une fenêtre modale à l'ouverture d'une page
    Par fashion80 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/11/2012, 10h30
  4. Centrer verticalement une fenêtre modale sur l'écran
    Par abbepierre94 dans le forum Silverlight
    Réponses: 11
    Dernier message: 27/09/2011, 23h52
  5. [VB.NET] Comment ouvrir une fenêtre modale avec Thread ?
    Par Damien10 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2006, 11h28

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