2010-07-07 7 views
0

vous montre une liste des e-mails, et pour chaque e-mail sur un clic, essaie de créer une fenêtre contextuelle, pour afficher le contenu e-mail complète ....plusieurs popups jquery dans CakePHP

le prob est que, des œuvres de pop-up seulement pour le 1er email, pour le repos il doent montrer quoi que ce soit,

ici est mon code,

foreach ($email as $x){ 

      echo "<div id='popuup_div' class='popup_msg'>"; 
      echo "<div id='image'>"; 
      echo $html->image('mail.png'); 
      echo "</div>"; 
      echo "<br>"; 
      echo $client['Email']['body']; 
      echo "</div>"; 

      $show = substr($client['Email']['body'], 0, 65); 


      echo $html->tableCells(array(array($client['Email']['date'], $client['Email']['time'], 
          $client['Email']['from'], $show . "......" . 
          "<div id='popupShow'> Show more....... </div>")));} 

code jquery

jQuery.noConflict(); 
`jQuery(document).ready(function(){ 

jQuery ('# popupShow'). Click (fonction (e) { // obtention de la hauteur et de la largeur de la boîte de message var height = jQuery ('# popuup_div'). Height(); var width = jQuery ('# popuup_div'). Width(); // calcul du décalage pour l'affichage du message contextuel leftVal = e.pageX- (width/1.5) + "px"; topVal = e.pageY- (height/13) + "px"; // Afficher le message contextuel et masquer avec un effet de fondu jQuery ('# popuup_div'). Css ({left: leftVal, top: topVal}). Show(); });

jQuery ('#' image') cliquez sur. (Function (e) { jQuery ('# popuup_div') fadeOut ('rapide'). }); }); `

Comment puis-je le faire fonctionner pour tous les e-mails?

Répondre

2

Les ID HTML doivent être uniques. Essayez de remplacer vos identifiants par des classes.

+0

Je suis d'accord. En plus de cela, vous pouvez placer toutes vos boîtes de dialogue dans un conteneur div avec un id comme "my-dialogs". Lorsque vous avez besoin de créer une boîte de dialogue, faites: 'jQuery ('. Some-dialog-class', '# my-dialogs'). Dialog();' Cette optimisation accélérera la localisation du dialogue HTML. Aussi garde le HTML un peu plus propre :) –

+0

J'ai essayé de remplacer par des classes, maintenant la popup fonctionne pour tous les emails. mais le contenu de la popup est le même pour tous et c'est le dernier contenu de l'email ...... – texpert

0

Je ne vois pas beaucoup de CakePHP dans ce problème. Je ne vois pas non plus de boucle qui parcourrait les courriels.

Questions connexes