entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

cambiar el texto únicamente al botón que le hacen click

hola que tal. he hecho un botón carrito al cual cuando le hacen click el texto cambia, el problema es que el texto en los demás botones carrito cambia también, lo que quiero hacer es que solo cambie únicamente el texto del boton al que se le hizo click, les dejo el codigo:

PHP

$registros2=mysqli_query($conexion,"select id_producto, nombre, precio, descripcion, id_categoria from productos where inicio=1 LIMIT ".$inicio."," . $TAMANO_PAGINA);

                <?php
                  while($fila2=mysqli_fetch_array($registros2)){
                    $registros3=mysqli_query($conexion,"select nombre from imagenes where id_producto='$fila2[id_producto]' and prioridad=1");
                    $fila3=mysqli_fetch_array($registros3);
                ?>

                <article class="articulo wow fadeInUp" id="article">
                    <a href="detalles_producto.php?id_categoria=<?php echo $fila2['id_categoria']; ?> & id_producto=<?php echo 
    $fila2['id_producto']; ?>"><img src="img/<?php if(mysqli_num_rows($registros3)>0) echo $fila3['nombre']; else echo "sin-imagen.jpg"; ?>"></a>
                </article>

               <div class="articulo2 wow fadeInUp" data-wow-delay=".1s" id="article">

                    <div class="contenidoArticulo">
                        <h2><?php echo utf8_encode($fila2['nombre']); ?></h2>
                        <p><?php $array=explode(" ",utf8_encode($fila2['descripcion']));
                        for($i=0;$i<count($array);$i++){
                          echo $array[$i]." ";
                          } ?></p>
                        <div class="botonDetalles">
                          <a href=""><?php echo $fila2['precio']."$"; ?></a>
                        </div>
                        <form class="formCarrito" name="formAnadirCarrito" id="formAnadirCarrito<?php echo $fila2['id_producto']; ?>">

                            <input type="text" name="nombre_producto" value="<?php echo utf8_encode($fila2['nombre']); ?>">
                            <input type="text" name="precio_producto" value="<?php echo $fila2['precio']; ?>">
                            <input type="text" name="cantidad_producto" value="1" maxlength=2>
                            <button type="button" onclick="anadirAlCarrito('formAnadirCarrito<?php echo $fila2['id_producto']; ?>')" 
                             class="botonCarrito">Añadir al carrito</button>
                        </form>
                    </div> 

                </div>
                <?php
                }
                cerrarconexion(); 
                ?>

JS

function anadirAlCarrito(f){
    var form=document.getElementById(f);
    var nombre_producto=form.elements.nombre_producto.value;
    var precio_producto=form.elements.precio_producto.value;
    var cantidad_producto=form.elements.cantidad_producto.value;

    $.ajax({
            type:"POST",
            url:"compra/carrito.php",
            data:{"nombre_producto":nombre_producto,"precio_producto":precio_producto,
            "cantidad_producto":cantidad_producto},

        beforeSend:function(){

        $(".botonCarrito").html('añadiendo...');

        },

            success:function(respuesta){

                    $("#contenedor_carrito").html(respuesta);
                    $("#contenedor_carrito").show("fast");
                    $("#menu").load(location.href + " #menu");
                    $(".botonCarrito").html('añadido');
            }

        });
}

1 Respuesta

4votos

FelipeMedel Puntos4530

En vez de usar la clase del boton usa un id

<button id='botonEjemplo'></button>

$("#botonEjemplo").html('añadiendo...');

elaprendiz comentado Ago 25

hola, si uso id en ves de la clase como dijiste el dom me arroja este mensaje: [DOM] Found 4 elements with non-unique id #botonCarro y el cambio de texto solo funciona en el botón del primer producto.

Leonardo-Tadei comentado Oct 18

Por norma del HTML, los ID tienen que ser únicos en el mismo documento.

Poneles ID únicos a cada botón!

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta