Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Cargar pedido sin que se recargue toda la página

Estas en el tema de Cargar pedido sin que se recargue toda la página en el foro de Frameworks JS en Foros del Web. Hola a todos! Tengo una página con un carrito de compras en la cual actualmente, cada vez que hago una búsqueda y agrego un producto ...
  #1 (permalink)  
Antiguo 03/10/2011, 15:34
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Cargar pedido sin que se recargue toda la página

Hola a todos! Tengo una página con un carrito de compras en la cual actualmente, cada vez que hago una búsqueda y agrego un producto de ese resultado, me refresca la misma y tengo que hacer nuevamente toooda la búsqueda para seguir cargando el caro.

Lo que quisiera saber con ajax o jquery es cómo puedo hacer para que al presionar sobre el link "Agregar al Pedido" me agregue el producto sin que se me recargue toda la página. Les muestro el código en cuestión:

resultados.php
Código HTML:
......
<script LANGUAGE="JavaScript">
function confirmEnv(){
if (confirm("¿Desea agregar el Producto al Carrito?")){ 
	alert('El Producto ha sido agregado.') }
	else { 
	return false
	}
};
</script>
<a href="carro_agregar.php?<?php echo SID ?>&cod_articulo=<?php echo $registro['cod_articulo']; ?>" onclick="if(confirmEnv() == false){return false;}"><img src="imagesite/carrito.png" width="150" height="35" title="Agregar al Pedido" border="0" /></a> 
carro_agregar.php
Código:
<?php 
$qry=mysql_query("SELECT * FROM........);
//resto del codigo php que no viene al caso...

?>
<script type="text/javascript">
top.document.location="../index.php";
</script>
Actualmente lo tengo así pero como dije antes, quisiera que no se recargara la página anterior.
¿Me pueden decir por favor como puedo solucionarlo?

Mil gracias y saludos.
Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 03/10/2011, 18:43
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Cargar pedido sin que se recargue toda la página

Lo más rápido y fácil que puedes hacer es:
Código HTML:
Ver original
  1. etc........
  2. <a href="etc." onclick="etc...." target="frame1">etc.....</a>
  3. <iframe name="frame1" style="display:none"></iframe>
Pero existen otras formas como AJAX o popups. Saludos.

Última edición por IXtremeLT; 03/10/2011 a las 18:50
  #3 (permalink)  
Antiguo 04/10/2011, 09:08
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cargar pedido sin que se recargue toda la página

Voy a probarlo a ver si me funciona pero esto lo he visto también con AJAX... ¿podrían darme un ejemplo de como hacerlo por favor?

Muchisimas gracias por la ayuda!

MArx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 04/10/2011, 10:12
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cargar pedido sin que se recargue toda la página

Bueno, sigo probando diferentes opciones con la cuales raramente las utilizo y probé además con jquery e hice lo siguiente:
Código PHP:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>

<script>
$(document).ready(function(){
    $("#cont-carrito").click(function(evento){
        evento.preventDefault();
        $("#destino").load("carro_agregar.php", {'<?php echo $registro['cod_articulo']; ?>'}, function(){
            alert("recibidos los datos por ajax");
        });
    });
})
</script>

<script LANGUAGE="JavaScript">
//var agree = confirm("¿Realmente desea eliminarlo?");
function confirmDel(){
if (confirm("¿Desea agregar el Producto al Carrito?")){ 
    alert('El Producto ha sido agregado.') }
    else { 
    return false
    }
};
</script>

<a href="carro_agregar.php?<?php echo SID ?>&cod_articulo=<?php echo $registro['cod_articulo']; ?>" onclick="if(confirmEnv() == false){return false;}"><img src="imagesite/carrito.png" width="150" height="35" title="Agregar al Pedido" border="0" /></a>
carro_agrega.php
Código PHP:
session_start();
$qry=mysql_query("SELECT * FROM........);
//resto del codigo php que no viene al caso... 
De esta manera me envía la variable a carro_agrega.php pero me sigue reseteando la ppágina y además me tira error en el session_start(); (Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent ) cosa que antes no me lo hacía.

Sigo escuchando sugerencias a ver si puedo solucionarlo.
Gracias y saludos.
Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #5 (permalink)  
Antiguo 04/10/2011, 10:20
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cargar pedido sin que se recargue toda la página

IXtremeLT: Brother... lo probé y funciona a la perfección. Muchas gracias.

Igual quisiera seguir investigando un poco más sobre AJAX y Jquery por si alguien quiere hacer un aporte con este tema.

Saludos.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 04/10/2011, 17:54
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Cargar pedido sin que se recargue toda la página

Hola!, mira esta bien al otra forma que pusiste(ajax), pero tienes dos errores, el primero esque preventDefault() no va detener la recarga de la página en IE solo en los demás navegadores, para ello utiliza también returnValue=false, que deberás hacer una condición como:
Código Javascript:
Ver original
  1. if(evento.preventDefault)
  2.     evento.preventDefault();
  3. else
  4.     evento.returnValue=false;
El segundo, te da ese error de PHP "...headers already sent" porque no debe haber ningún dato de salida antes de session_start(), ni un solo espacio.
Ejemplo:
MAL
Código PHP:
Ver original
  1. <?php
  2.     echo 1;
  3.     session_start();
  4. ?>
MAL
Código PHP:
Ver original
  1. Hola!<?php
  2.     session_start();
  3. ?>
BIEN
Código PHP:
Ver original
  1. <?php
  2. echo "que tal!";
  3. ?>
  4. <b>Hola!</b>
Ya lo demás lo tienes bien, pero de todas formas el ejemplo que puse con "<iframe>" para mí es muy cómodo, compácto, casi nada de programación y completamente funcional.
Además puedes usarlo para subir archivos sin recargar la página con ese método ya que usando Ajax lamentablemente aún no se puede lograr del todo por falta de compatibilidad entre navegadores, saludos!
  #7 (permalink)  
Antiguo 05/10/2011, 07:57
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cargar pedido sin que se recargue toda la página

Muchas Gracias IXtremeLT por tu explicación. Me sirvió y mucho.

Abrazo. MArx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:54.