Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 7 de 7

Tema: jQuery a elementos dinámicos

  1. #1
    Recien Llegado! Habitante
    Fecha de Ingreso
    21 nov, 12
    Mensajes
    16
    Poder de Reputación
    11

    Question jQuery a elementos dinámicos

    Hola amigos, soy nuevo en la web.

    Tengo un problemilla que me tiene comida la cabeza estos días y soy muy novato en el tema web.

    Os comento, estoy haciendo una aplicación web más o menos tipo chat, tengo una serie de phps y mysql en mi servidor etc etc

    El tema es, que una vez que he validado a un usuario le llevo a un php en donde creo un select (con opciones según me las de mysql). En base a esas opciones quiero mostrar una serie de botones debajo, uno con cada tema disponible para la opción seleccionada (esto me lo devuelve ajax de la base de datos)

    Y aquí me viene el problema, como la lista de botones de abajo la genero de forma dinámica gracias al ajax, luego no sé cómo asociarlos a un jquery en el que quiero hacer una función para cada pulsar botón...

    No sé si me he explicado (creo que no) pero soy nuevo y me cuesta.

    Gracias a todos de antemano.

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    24
    Hola:

    Primero que nada, debes darle una clase a cada botón:

    Código:
    <button class="button">Boton</button>
    Luego, con jQuery debes hacer esto:

    Código:
    $('button.button').live('click', function(e) {
      e.preventDefault();
      // Aquí pones el código que se ejecutará.
    });
    .live() se utiliza cuando se cargan elementos asíncronos, o sea, después de que se ha cargado la página y se añaden elementos con Javascript.

    Espero que te sirva, saludos.

  3. #3
    Recien Llegado! Habitante
    Fecha de Ingreso
    21 nov, 12
    Mensajes
    16
    Poder de Reputación
    11
    Cita Iniciado por skaparate Ver Mensaje
    Hola:

    Primero que nada, debes darle una clase a cada botón:

    Código:
    <button class="button">Boton</button>
    Luego, con jQuery debes hacer esto:

    Código:
    $('button.button').live('click', function(e) {
      e.preventDefault();
      // Aquí pones el código que se ejecutará.
    });
    .live() se utiliza cuando se cargan elementos asíncronos, o sea, después de que se ha cargado la página y se añaden elementos con Javascript.

    Espero que te sirva, saludos.
    Muchas gracias por tu respuesta!
    Pero no sé si yo podré hacer eso.
    Mis botones se van creando uno a uno en un bucle en función de los valores que me devuelva una query de sql desde php
    Código:
    $sql=mysql_query("SELECT groupID FROM SIGNUP WHERE loginUser='$login'",$con);
    ...
    <div id="chatTopBar" class="rounded"></div>
            <?php
                while($row = mysql_fetch_array($sql)){
    	           echo "<button value=\"".$row['groupID']."\">".$row['groupID']."</option> \n";
                }
            ?>
    entonces respecto al código que me has puesto, cómo puede jquery saber qué botón de todos he pulsado, si los botones dependen de lo que devuelva la query?¿

    Muchas gracias por tu atención.
    Saludos y perdona la molestia.
    Última edición por SamuraiX10; 21/11/2012 a las 15:04

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    24
    Javascript lo sabrá porque todos los botones (los elementos en general) tienen asociados ID internos.

    Ahora, si tu pregunta es como puedo saber yo que botón se ha pulsado, entonces tendrás que darle un identificador, ya sea una clase (class), un atributo (si fuera un <a> , por ejemplo, podría ser el atributo href), un nombre (name). Supongamos que la consulta SQL devuelve estos botones:

    Código HTML:
    <button value='a1'>A1</button>
    <button value='a2'>A2</button>
    <button value='a3'>A3</button>
    Entonces con jQuery podrías hacer esto:

    Código:
    $(button').live('click', function(e) {
      e.preventDefault();
      // Aquí pones el código que se ejecutará.
      var valor = $(this).attr('value');
    
      switch(valor) {
        case 'a1':
          // Haces algo para A1
          break;
        case 'a2':
          // Haces algo para A2
          break;
        case 'a3':
          // Haces algo para A3
          break;
        // Etcétera
      }
    });
    Entiendes? :)

  5. #5
    Recien Llegado! Habitante
    Fecha de Ingreso
    21 nov, 12
    Mensajes
    16
    Poder de Reputación
    11
    Cita Iniciado por skaparate Ver Mensaje
    Javascript lo sabrá porque todos los botones (los elementos en general) tienen asociados ID internos.

    Ahora, si tu pregunta es como puedo saber yo que botón se ha pulsado, entonces tendrás que darle un identificador, ya sea una clase (class), un atributo (si fuera un <a> , por ejemplo, podría ser el atributo href), un nombre (name). Supongamos que la consulta SQL devuelve estos botones:

    Código HTML:
    <button value='a1'>A1</button>
    <button value='a2'>A2</button>
    <button value='a3'>A3</button>
    Entonces con jQuery podrías hacer esto:

    Código:
    $(button').live('click', function(e) {
      e.preventDefault();
      // Aquí pones el código que se ejecutará.
      var valor = $(this).attr('value');
    
      switch(valor) {
        case 'a1':
          // Haces algo para A1
          break;
        case 'a2':
          // Haces algo para A2
          break;
        case 'a3':
          // Haces algo para A3
          break;
        // Etcétera
      }
    });
    Entiendes? :)
    Entiendo. entonces sólo me queda una pregunta, tras el pulsar cualquier botón (cada uno tiene el value=nombre devuelto por sql), quiero hacer otra query de sql poniendo como campo el valor del botón.
    La pregunta entonces es, qué forma tengo de saber el valor del botón pulsado?. Podría hacerse con tu línea de antes?
    Código:
      var valor = $(this).attr('value');
    y entonces con esa variable ya tendría el valor del botón pulsado para poder usarlo en mi 2ª query?

    Muchas gracias por tu tiempo ;)

  6. #6
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    24
    Entiendo. entonces sólo me queda una pregunta, tras el pulsar cualquier botón (cada uno tiene el value=nombre devuelto por sql), quiero hacer otra query de sql poniendo como campo el valor del botón.
    La pregunta entonces es, qué forma tengo de saber el valor del botón pulsado?. Podría hacerse con tu línea de antes?
    y entonces con esa variable ya tendría el valor del botón pulsado para poder usarlo en mi 2ª query?

    Muchas gracias por tu tiempo ;)
    Exacto :).

  7. #7
    Recien Llegado! Habitante
    Fecha de Ingreso
    21 nov, 12
    Mensajes
    16
    Poder de Reputación
    11
    Cita Iniciado por skaparate Ver Mensaje
    Exacto :).
    Muchas gracias, me sirvió de mucha ayuda ;)

Temas Similares

  1. Opción "Usar siempre marcadores dinámicos para suscribirse"
    Por Nebulosa en el foro Sindicar o compartir contenido en la web con Feed RSS
    Respuestas: 0
    Último Mensaje: 21/03/2012, 06:29
  2. elementos que se abren en varios sub elementos
    Por gaston1501 en el foro Foro General
    Respuestas: 2
    Último Mensaje: 23/11/2010, 19:58
  3. Estilos dinamicos
    Por TIFORO en el foro Todo sobre Estilos CSS
    Respuestas: 0
    Último Mensaje: 28/04/2009, 21:06

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •