Nueva pregunta

Pregunta:

Fecha: 19-02-2018 18:18:31 (En Español)

cargar pagina[No resuelta]

Buenas noches:
Estoy haciendo un carrito online y funciona bien, solo quiero corregir una cosa y esque cuando le doy agregar me devuelve a la parte superior de la pagina y deseo que no se cargue sino que se quede en el mismo lugar al darle agregar. algo escuche de ajax para eso pero no se como hacerlo.

gracias
Etiquetas: Votos: 1 - Respuestas: 5 - Vistas: 10 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 20-02-2018 02:08:23 Ajax va al servidor y vuelve en el momento. Se utiliza para webs dinámicas, como un carrito en este caso.

    Deberías aclarar bien qué queres hacer o compartir parte de tu código para poder ayudarte mejor.
      Votos: 1 - Link respuesta
     
  • Fecha: 20-02-2018 02:31:45 Por lo que comentas, debes tener los enlaces de agregar de esta manera:

    <a href="#" id="loquesea" class="miboton">Agregar</a>
    


    en caso de que si, deberías de utilizar en tu codigo jquery el preventDefault() para así evitar que se ejecute la acción por defecto de este, algo así:

    
    $(".miboton").click(function(e){
      e.preventDefault();//Aqui evitamos que se ejecute la acción por defecto de boton que es dirigirse al inicio al tener un numeral como enlace.
    })
    
    


    claro mi respuesta puede considerarse vacía y un poco generalizada ya que no agregaste el código que usas para agregar elementos a tu cesta. Agrega dicho código y vemos si mi respuesta aplica o te ayudamos un poco más.

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 20-02-2018 04:19:43 este es el codigo y en el button, al darle agregar, vuelve a cargar la pagina. Queda agregado el producto pero vuelve a cargar la pagina

    <?php
    
    $products = $con->query("select * from product");
    ?>
    <table class="table table-bordered">
    <thead>
    	<th style="text-align: center;">Producto</th>
    	<th style="text-align: center;">Precio</th>
    	<th></th>
    </thead>
    <?php 
    /*
    * Apartir de aqui hacemos el recorrido de los productos obtenidos y los reflejamos en una tabla.
    */
    while($r=$products->fetch_object()):?>
    <tr>
    	<td><strong><?php echo $r->name;?></strong></td>
    	<td><strong>$ <?php echo number_format($r->price); ?></strong>
    	
    	<td style="width:260px;">
    	<?php
    	$found = false;
    
    	if(isset($_SESSION["cart"])){ foreach ($_SESSION["cart"] as $c) { if($c["product_id"]==$r->id){ $found=true; break; }}}
    	?>
    	<?php if($found):?>
    		<a href="cart.php" class="btn btn-info">Agregado</a>
    	<?php else:?>
    	<form class="form-inline" method="post" action="php/addtocart.php">
    	<input type="hidden" name="product_id" value="<?php echo $r->id; ?>">
    	  <div class="form-group">
    	    <input type="number" name="q" value="1" style="width:100px;" min="1" class="form-control" placeholder="Cantidad">
    	  </div>
    	  <button type="submit" class="btn btn-primary">Agregar</button>
    	</form>	
    	<?php endif; ?>
    	</td>
    </tr>
    <?php endwhile; ?>
    </table>
    
      Votos: 1 - Link respuesta
     
  • Fecha: 20-02-2018 05:47:56 bueno si ves esta claro que te va a recargar la pagina, ya que es un formulario lo que envía, para no recargar la pagina deberías de utilizar ajax   Votos: 0 - Link respuesta
     
  • Fecha: 20-02-2018 05:59:28 Prueba de esta manera:

    <form class="form-inline" id="formulario" method="post" action="php/addtocart.php">
        <input type="hidden" name="product_id" value="5">
          <div class="form-group">
            <input type="number" name="q" value="1" style="width:100px;" min="1" class="form-control" placeholder="Cantidad">
          </div>
          <button type="submit" class="btn btn-primary">Agregar</button>
        </form> 
    


    $(function(){
                $("#formulario").submit(function(e){
                    e.preventDefault();//Evitamos que se enví9e el formulario
                    var producto = $("input[name=product_id]").val();//id del producto
                    var cantidad = $("input[name=q]").val();//Cantidad
    
                    //Validamos que se haya escrito una cantidad
                    if(cantidad=="" || cantidad == 0){
                        alert("Debe agregar la cantidad a comprar");
                        return false;
                    }
    
                    //Enviamos por ajax los valores mediante post
                    $.post('php/addtocart.php',{
                        product_id:producto,
                        q:cantidad
                    })
                    .done(function(resp){
                        //Recibes la respuesta de tu archivo php y ejecutas las acciones correspondientes
                    })
                    .fail(function(err){
                        //Si hay error al intentar enviar la peticion ajax
                    })
    
                })
            })
    
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com