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

Sunseeker -  
 Sunseeker -
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");
          });
   
     
});

4 réponses

  1. Utilisateur anonyme
     
    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
  2. Sunseeker
     
    Bonjour :)

    Merci pour ta réponse.
    J'ai essayé en remplaçant $(document).ready, par jQuery(function($), mais ça ne change rien
    0
  3. Utilisateur anonyme
     
    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
  4. Sunseeker
     
    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