Foros del Web » Programando para Internet » PHP »

generar sin abrir paginas nuevas..

Estas en el tema de generar sin abrir paginas nuevas.. en el foro de PHP en Foros del Web. Hola foristas, ¿existe alguna forma desde dentro de un script PHP decirle al mismo que lo que el genere (ej. html dinamico) se cargue en ...
  #1 (permalink)  
Antiguo 21/07/2009, 06:09
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 14 años, 9 meses
Puntos: 0
Información generar sin abrir paginas nuevas..

Hola foristas, ¿existe alguna forma desde dentro de un script PHP decirle al mismo que lo que el genere (ej. html dinamico) se cargue en una <div> de la pagina principal y no en una nueva página?- por si no se entiende con otras palabras, necesito generar contenido dinamico con PHP y que el mismo se cargue en una <div> predefinida y no en una nueva página y sin tener que recurrir a javascript.

Gracias y continúen ayudando...
  #2 (permalink)  
Antiguo 21/07/2009, 06:23
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: generar sin abrir paginas nuevas..

sin recurrir al javascript es imposible

Saludos!
  #3 (permalink)  
Antiguo 21/07/2009, 09:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: generar sin abrir paginas nuevas..

La única forma sin recurrir a JavaScript es recargando la página, o bien en un iframe (pero eso ya no es un div).
En culalquier caso, si es por no usar un XMLHttpRequest, con el iframe podrías tenerlo resuelto (siempre que el navegador los soporte, si es que estamos en lo mismo).
Con javascript podrías cambiar de sitio el contenido, es decir:

Código HTML:
<!-- .. el resto de tu cabecera -->
<script type="text/javascript">
var iframe = document.getElementById(...);
var div = document.getElementById(....);

iframe.onload = function() {
  div.innerHTML = iframe.innerHTML;
}
</script>
<style type="text/css">
#iframeDinamico {
  visibility:hidden;
  display:none;
}
</style>
<!-- ... resto de la cabecera -->
<body>

<!-- En algún punto del body introducir esto:-->
<div id="dinamica"></div>
<iframe id="iframeDinamico" name="iframeDinamico"></iframe>
<!-- más body por aquí --> 
Básicamente el estilo es para que no se vea más que el <div />

Para cargar algo en el iframe (y por tanto para que se cargue en el <div /> con el onload() ), sería tan sencillo como utilizar un
Código HTML:
<a href="<?=$base_url?>?accion=ejemplo&amp;parametros" target="iframeDinamico">Pulsa aqui</a> 
Si vas a usar este método, ten en cuenta el parámetro target="" para que el link se abra en el iframe y no en tu página


Si no quieres tener NADA que ver con JavaScript, tendrás que cargar las páginas enteras, con el gasto de ancho de banda que supone enviarlas y de CPU procesarlas. Además ten en cuenta que si hay elementos (en una UI, por ejemplo ventanas) que tengan que continuar en su sitio, la mejor forma de hacerlo sería almacenar esos datos en sesión para que al cargar la nueva página no se pierdan. Otra forma es enviarlos por URL, pero hay un límite de caracteres.

Por ejemplo,
Código HTML:
<a href="index.php?abierto[]=programa1&amp;parametros[]=parametros.del.programa.1&amp;abierto[]=programa2&parametros[]=parametros.del.programa.2"> 
, y eso luego en PHP podría accederse como un
Código PHP:
$programas $_GET['abierto'];
$parametros $_GET['parametros'];

for(
$i 0$i count($programas); $i++) procesar_programa_abierto($programas[$i], $parametros[$i]); 
Otra forma es usar formularios y enviarlos por POST, que tiene efectos similares, pero necesitas formularios, y que prácticamente todo sean botones. Eso sí, el límite para enviar cosas está mucho más lejos que el de GET (pasar parametros por URL).


Un saludo =)
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
  #4 (permalink)  
Antiguo 22/07/2009, 19:42
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: generar sin abrir paginas nuevas..

OK, Gracias por la ayuda Santhy estoy viendo la forma de hacerlo usando javascript, no quiero usar iframes...
Gracias por todo..
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 20:22.