Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] ¿Alguna forma para que no me recargue la web este código?

Estas en el tema de ¿Alguna forma para que no me recargue la web este código? en el foro de HTML en Foros del Web. Lo que sucede es que al pinchar uno de los botones es como si refrescara toda la página y no me gusta. Me gustaría que ...
  #1 (permalink)  
Antiguo 28/02/2013, 13:59
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Exclamación ¿Alguna forma para que no me recargue la web este código?

Lo que sucede es que al pinchar uno de los botones es como si refrescara toda la página y no me gusta. Me gustaría que sólo cambiase el contenido del div.

Código en el head

<?php
$recibe_pagina=$_GET['pagina'];
?>

Botones


<td > <div ><a href="ejemplo.php?pagina=boton1">BOTON1</a></div></td>
<td ><div ><a href="ejemplo.php?pagina=boton2" >BOTON2</a></div></td>
<td ><div ><a href="ejemplo.php?pagina=boton3" >BOTON3</a></div></td>

Código de dentro del div:

<?php
switch ($recibe_pagina){
case "boton1":
include ("contenido1.php");
break;
case "boton2":
include ("contenido2.php");
break;
case "boton3":
include ("contenido3.php");
break;
}
  #2 (permalink)  
Antiguo 28/02/2013, 14:36
 
Fecha de Ingreso: septiembre-2011
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ¿Alguna forma para que no me recargue la web este código?

Hola Bueno, yo te sugiero que utilices JavaScript y Ajax para que solo agregue el contenido al div.
  #3 (permalink)  
Antiguo 28/02/2013, 14:39
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguna forma para que no me recargue la web este código?

Cita:
Iniciado por la_ladyblue Ver Mensaje
Hola Bueno, yo te sugiero que utilices JavaScript y Ajax para que solo agregue el contenido al div.
Muchas gracias. ¿Podrías ponerme un ejemplo de código?
  #4 (permalink)  
Antiguo 28/02/2013, 15:13
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguna forma para que no me recargue la web este código?

Lo que sucede es que no quiero cambiar solamente el contenido de un div, si no de varios. Y con ese código funciona. Y también quiero aplicar valores diferentes a distintos botones para que carguen en cada div diferentes cosas.

Lo malo es eso, que me refresca la página.
  #5 (permalink)  
Antiguo 28/02/2013, 15:31
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: ¿Alguna forma para que no me recargue la web este código?

La razon por la que se te refresca la pagina es por que estas haciendo un post en tu forma, el cual lo procesas con:
Cita:
<?php
$recibe_pagina=$_GET['pagina'];
?>
Lo cual no tiene nada de malo, por que asi funciona php, y como dice la_ladyblue para que hagas esto tienes que manejarlo de una manera mas dinamica y pues tienes muchas maneras para hacerlo, entre ellas es manejar estilos css los cuales muestras y ocultas con javascript, pero esto significa que todo tu contenido tiene que estar cargado y se hace mas lenta tu pagina al cargar, si es mucho contenido claro, si no no hay problema.

La otra opcion es cargar mediante ajax, lo cual es un poco mas complejo y elaborado. Pero como estas pidiendo que cambie diferentes csoas por cada boton vas a tener que usar ajax para evitar todo el post de la pagina.

Te recomiendo que veas un poco sobre load() y $.ajax de jQuery, o si quieres hacerlo desde cero y trabajar un poco mas hazlo con Ajax puro.

Demo:
http://d2o0t5hpnwv4c1.cloudfront.net...dex.html#terms

Tutorial:
http://net.tutsplus.com/tutorials/ja...t-with-jquery/

Saludos
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #6 (permalink)  
Antiguo 28/02/2013, 17:43
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguna forma para que no me recargue la web este código?

Reedyseth muchas gracias, antes de que posteases estaba intentándolo con esto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento</title>


<style type="text/css">
<!--
@import url("estilo1.css");
-->
</style>
<script>
function nuevoAjax(){

var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;

}




function Cargar(url){


var contenido = document.getElementById('contenido');

ajax=nuevoAjax();
ajax.open("GET", url,true);
ajax.onreadystatechange=function(){

if(ajax2.readyState==4){

contenido.innerHTML=ajax.responseText;

}

}

ajax.send(null);



}
</script>
</head>

<body>
<div id="menu"><?php include("menu.php"); ?></div>
<div id="contenido"><?php include("contenido1.php"); ?></div>
</body>
</html>


Y esto para menu.php

<a href="#" onclick="Cargar('contenido1.php');">Link1</a><br />
<a href="#" onclick="Cargar('contenido2.php');">Link2</a><br />
<a href="#" onclick="Cargar('contenido3.php');">Link3</a><br />


Pero no funciona. ¿Alguien sabe cual es el fallo?
  #7 (permalink)  
Antiguo 01/03/2013, 06:51
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguna forma para que no me recargue la web este código?

Aquí la solución, por si entra algún usuario buscándola.

http://www.forosdelweb.com/f13/algui...-esto-1039860/

Muchas gracias a todos !!

Etiquetas: página, php
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 04:28.