Comunidad de diseño web y desarrollo en internet online

ayuda, problema con jquery php.

Citar            
MensajeEscrito el 12 Dic 2012 04:50 pm
Hola amigos de CristaLab, bueno regreso por otro nuevo problema pero ahora con jquery.

Lo que pasa esque tengo una funcion asi:

Código Javascript :

var pub = {

   likedos: function(id){
      $.ajax({
         type: 'POST',
         url: urls.home+'/php/ajax/shout/like.php',
         data: 'id=' + id,
         success: function(h){
            switch(h.charAt(0)){
               case '0': // Error
                     mydialog.alert('Error', h.substring(3));
                  break;
               case '1': // OK
                     
                     $('.s-numero-mg').html(parseInt($('.s-numero-mg').html()) + 1);
                  break;               
            }
         },
         error: function(){
            mydialog.alert('Oops!!!', 'Error provocado por usuario..');
            return;
         },
         complete: function(){
         }
      });
   },
   }


como veran en donde dice case'1' lo que hace es agregar un valor en s-numero-mg,:

Código PHP :

<a class="s-borde qtip" onclick="pub.likedos(\''.$idshout.'\');return false">
                     <span class="s s-like"></span><div class="s-numero-mg">'.$cantidad_m.'</div>
                  </a>


lo que pasa, cuando doy click en me gusta sucede que, todos los shouts tira 1, o si ya di 2 en otro, los demas tira 3, asi sucesivamente, y yo deseo que solo el shout que selecione me vaya a tirar el efecto, o que me añada el +1, imagenes para que me entiendan un poco, soy malo explicando :P.

CAPS:

Normal:



Cuando doy me gusta:



NO SOY MUY EXPERTO EN ESTO.

Saludos, y espero que haya una solucion a este problema, y que alguien me conteste, si necesitan mas info, me avisan.

Por reysoft

25 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Dic 2012 05:13 pm
Tu problema parte de que estás seleccionando un class, y un class puede tenerlo más de un elemento. Por lo tanto JQuery ejecuta lo que estás haciendo en todos los elementos que tiene ese class.

Entonces, para solucionarlo, tendrías que usar el id de los elementos y no su class.

Deberías modificar dos cosas, el HTML:

Código HTML :

<a class="s-borde qtip" onclick="pub.likedos(\''.$idshout.'\');return false">
                     <span class="s s-like"></span><div class="s-numero-mg" id=\'s-numero-mg-'.$idshout.'\'>'.$cantidad_m.'</div>
                  </a>


Y el JavaScript en la parte que corresponde:

Código Javascript :

case '1': // OK
                     
                     $('#s-numero-mg-'+id).html(parseInt($('#s-numero-mg-'+id).html()) + 1);
                  break;  

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Dic 2012 05:42 pm
Funciona, Gracias por tu ayuda DriverOp, Muchisimas Gracias. Saludos :D

Por reysoft

25 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.