Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/07/2009, 09:11
santhy
 
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!