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

JavaScript Discussion :

Div class lightbox


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Div class lightbox
    bonjour,

    Je souhaite créer des boutons permettant d'ouvrir une lightbox pour éditer un commentaire, il peut y avoir plusieurs boutons. Cependant pour les afficher j'utilise une boucle, ils sont contenu dans une div. Le problème est que une fois la lightbox ouverte, je veux que le contenu du textarea soit le commentaire actuel et étant donner que la classe est la même c'est toujours le 1er commentaire qui est afficher pour TOUT les boutons.

    chaque bouton est défini comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <span class="modifiercom"></span>
    <div class="lightbox" style="display:none">
         <span class="texte"></span>
    		<label class="corps_modifier"></label>
    		<textarea class="corps_modifier"><?php echo $comm ?></textarea>
    		<input type="submit" onClick="modifierCommentaire()"/>
    </div>
    Quelqu'un a une solution ?

  2. #2
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Bonsoir,

    Si tu utilise une boucle pour générer tes boutons, rajoute une variable de type "entier" que tu incrémente à chaque passage.

    Pour chaque bouton et textarea tu viendra rajouter cette valeur dans une balise. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <span class="modifiercom" rel="LE_NUMERO_UNIQUE"></span>
    <!-- blablabla -->
    <div class="lightbox" style="display:none" rel="LE_NUMERO_UNIQUE">
      <!-- blablabla -->
    </div>
    Maintenant je ne sait pas avec quoi tu gère le clic, mais si c'est en jQuery tu fait:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(".modifiercom").click(function() {
      var num = $(this).attr('rel');
      // Cache toute les lightbox (on sait jamais :p)
      $('.lightbox').hide();
      // Affiche celle correspondant au bouton
      $('.lightbox[rel="' + num + '"]').show();
    });

    Bon dév'

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    le contenu de mon script est le suivant :

    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
     
    var $jq = jQuery.noConflict();
     
    $jq(document).ready(function() {
    	$jq(".modifierconseil").click(function(){
    		$jq("#overlayy").fadeIn();
    		$jq(".lightboxvideo_conseil").fadeIn();
    	});
    	$jq("#overlayy").click(function(){
    		$jq("#overlayy").fadeOut();
    		$jq(".lightboxvideoplayer").fadeOut();
    		$jq(".lightboxvideo_conseil").fadeOut();
    	});
    });

    J'ai essayer en ajoutant le rel, cela ne marche pas, il noircit bien la page mais il n'y a pas d'affichage du textarea.
    mon code est le suivant :
    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
     
    var $jq = jQuery.noConflict();
     
    $jq(document).ready(function() {
    	$jq(".modifierconseil").click(function(){
    		var num = $(this).attr('rel');
    		$jq("#overlayy").fadeIn();
    		$jq(".lightboxvideo_modifier[rel=\"' + num + '\"]").fadeIn();
     
    	});
    	$jq("#overlayy").click(function(){
    		var num = $(this).attr('rel');
    		$jq("#overlayy").fadeOut();
    		$jq(".lightboxvideoplayer[rel=\"' + num + '\"]").fadeOut();
    		$jq(".lightboxvideo_modifier[rel=\"' + num + '\"]").fadeOut();
    	});
    });

    Merci de votre aide

  4. #4
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Salut,

    Tu as bien rajouter les rel="X" dans les balises HTML?

    Sinon tu as une petite erreur de syntaxe JavaScript/jQuery:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".lightboxvideo_modifier[rel=\"" + num + "\"]")...

    Si tu utilise le double quotes pour ton sélecteur, utilise également le double quote pour la concaténation "string" + variable.

    Bon dév'

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    oui en effet c’était bien la syntaxe. j'ai maintenant un autre problème, c'est pour récupérer le contenu de ce textarea après modification.
    mon javascript est comme ca :
    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
    23
    24
     
    function modifierConseil(){
     
    		var tab = {};
    		var num = $(this).attr('rel');
     
    		tab['url'] = $jq('.corps_modifier[rel="' + num + '"]').html();
    		tab['user'] = $jq('.usermodifier[rel="' + num + '"]').html();
    		tab['fiche'] = $jq("#fichemodifier").html();
    		alert(tab['url']);
       		req = { 'tab[]' : tab , type : 'demo'};
    		$jq.ajax({
                       		type: "POST",
                       		url: "http://www.url.com/ajax_video/add_modifier.php",
                       		data: req,
                       		success: function(x){
     
                       			var result = x.split("$");
     
                       			$jq("#"+result[0]).html(result[1]);
    							window.location.reload(true);
                       		}
            	});
    }

    je remet le code html correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <span class="modifierconseil" rel="<?php echo $checkk; ?>">Modifier un conseil</span>
        <span class="usermodifier" style="display:none" rel="<?php echo $checkk; ?>"><?php echo $identr; ?></span>
    	<div class="lightboxvideo_modifier" rel="<?php echo $checkk; ?>" style="display:none">
    		<span class="texte" rel="<?php echo $checkk; ?>"></span> 
    		<label class="corps_modifier" rel="<?php echo $checkk; ?>"></label>
    		<textarea class="corps_modifier" rel="<?php echo $checkk; ?>"><?php echo utf8_decode(find_conseil($conseil, $identr)); ?></textarea>
    		<input type="submit" onClick="modifierConseil()"/>
    		<span class="erreurmsg_modifier"></span><span class="successmsg_modifier <?php echo $checkk; ?>"></span>
    	</div>
    le soucis est que je n'arrive a récupérer aucune variable.

    merci

  6. #6
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Le code de ta fonction n'est pas bon. Tu ne peux pas utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var num = $(this).attr('rel');
    car il ne connait pas le this.

    Pour contrer cela, il te suffit de reporter ce "num" directement dans l'appel de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" onClick="modifierConseil('<?php echo $checkk; ?>')"/>
    Et ta fonction javascript devient:
    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
    function modifierConseil(num){
     
    		var tab = {};
     
    		tab['url'] = $jq('.corps_modifier[rel="' + num + '"]').html();
    		tab['user'] = $jq('.usermodifier[rel="' + num + '"]').html();
    		tab['fiche'] = $jq("#fichemodifier").html();
    		var req = { 'tab[]' : tab , type : 'demo'};
    		$jq.ajax({
                       		type: "POST",
                       		url: "http://www.url.com/ajax_video/add_modifier.php",
                       		data: req,
                       		success: function(x){
     
                       			var result = x.split("$");
     
                       			$jq("#"+result[0]).html(result[1]);
    							window.location.reload(true);
                       		}
            	});
    }
    En espérant avoir été assez clair!

    Bon dév'

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    en effet cela fonctionne, cependant il récupère le textarea affiché précédemment, si je le modifie il ne le prend pas en compte pourquoi?

    merci

  8. #8
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Je ne vois pas de raison. Essaye d'utiliser .val() plutôt que .html().

    Sinon c/c ton code complet pour que je debug.

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

Discussions similaires

  1. Curseur div=class avec IE
    Par Hyuunkel dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/06/2011, 13h10
  2. [CSS 2.1] balise div class et firefox
    Par ledisciple dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2009, 13h31
  3. <Div id=" "> et <Div class=" ">
    Par saadou dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/05/2008, 11h18
  4. Se passer des <div class="clearer"></div> ?
    Par bigsister dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/02/2007, 12h46

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