MODAL jquery UI désobéissante (while($a=mysql_fetch_assoc))

Fermé
Sunseeker - Modifié par Sunseeker le 13/07/2014 à 11:23
 Sunseeker - 13 juil. 2014 à 12:38
Bonjour,

Dans son compte, un membre peut sauvegarder ses diverses recherches, lesquelles j'affiche avec un while mysql_fetch_assoc.
Chaque "recherche" (id='$mod') comporte 1 bouton Modifier (id='$i') et 1 bouton Supprimer. Modifier ouvre une modal jQuery UI qui contient un form pour la modif de la recherche x.

Mon problème c'est que le bouton Modifier de la première recherche affichée n'a aucun effet, alors que le 2e oui, et qu'ils sont tous 2 issus d'une boucle While et que chacun a un $i incrémenté... What's going wrong ? Merci de votre aide




echo "<div id='slid'>";
$i="bouton_modifier_0";
$mod="div_mod_0";
 
while($inf = mysql_fetch_assoc($rep))
     {$i++;
      $mod++;
      echo "<div class='white_recherche'>                                   
            <div class='titre_recherche'>  MA RECHERCHE \"".ucfirst($inf['recherche_nom'])."\" </div>
                                   
            <div class='content_i'>                                  
            // Affichage du descriptif de chaque recherche<br>
            echo "<input type='button' id='$i' value='Modifier' class='bouton_modif' />
                  <input type='button' value='Supprimer' class='bouton_suppr'/>
                  <br /><br /> ";
                                   
       echo "<div class='modifier_alerte' id='$mod' title='MODIFIEZ VOTRE ALERTE EMAIL "; echo ucfirst($inf['recherche_nom']); echo " ' >
             <div id='modal_dossier_pad'>
             <br /><br />";                                  
             include('modifier_alerte.php');
             echo " </div></div></div></div> "; 
}


<script type="text/javascript">
  $(document).ready(function() {
 
var dialog = $( "#<?php echo $mod; ?>" ).dialog({  autoOpen: false,
                                                modal: true,
                                                width: 700,
                                                height: 700,
                                                 
                                                show: { effect: "blind",
                                                        duration: 1000
                                                      },
                                                hide: { effect: "fold",
                                                        duration: 1000
                                                      }
                                             });
                                              
 $("#<?php echo $i; ?>").click(function()
         {  dialog.dialog("open");
          });
   
     
});
A voir également:

4 réponses

Utilisateur anonyme
13 juil. 2014 à 11:45
Bonjour

Je ne suis pas sûr à 100% de ma réponse, mais il me semble bien que
$(document).ready(function() {
définit LA fonction qui va être exécutée quand la page sera complètement chargée. J'ai bien dit LA, c'est à dire que ça n'"empile" pas les fonctions à appeler. Si tu exécutes plusieurs fois cet appel, seule la dernière fonction est conservée.
0
Bonjour :)

Merci pour ta réponse.
J'ai essayé en remplaçant $(document).ready, par jQuery(function($), mais ça ne change rien
0
Utilisateur anonyme
13 juil. 2014 à 12:14
Quel rapport avec ma réponse ?
Évidemment que ça ne change rien. jQuery(function($) est exactement la même chose que $(document).ready(function()
0
Ah.. bon.. je pensais qu'il y avait une petite nuance. Entendu.

J'ai supprimé $(document).ready(function() ou jQuery(function($) et je reste avec le même résultat. Tu vas me dire que c'est encore pareil que ce que tu m'as dit, mais je n'ai pas bien saisi mais disons que je ne sais pas ce que je dois faire pour remédier à mon problème, malgré que je cherche parallèlement on the web.


<script type="text/javascript">


var dialog = $( "#div_mod_<?php echo $i; ?>" ).dialog({ autoOpen: false,
modal: true,
width: 700,
height: 700,

show: { effect: "blind",
duration: 1000
},
hide: { effect: "fold",
duration: 1000
}
});

$("#bouton_modifier_<?php echo $i; ?>").click(function()
{ dialog.dialog("open");
});

</script>
0