Se me acaba de ocurrir algún método para pasar variables de una página a otra de forma transparente, se trata de añadir un iframe de dimensiones de 100% a la página que contiene el formulario:
PRIMER ARCHIVO, formulario y script para poner el iframe:
Código PHP:
<form name="formulario">
Nombre: <input type="text" name="nombre" value="Paco" /><br />
Edad: <input type="text" name="edad" value="33" /><br />
Pais: <input type="text" name="pais" value="Es" /><br />
Sexo:
<div style="margin-left:20px;">
<input type="radio" name="sexo" value="hombre" /> Hombre <br/>
<input type="radio" name="sexo" value="mujer" /> Mujer <br/>
</div>
Posesiones:
<div style="margin-left:20px;">
<input type="checkbox" name="posesiones" value="casa" /> casa <br/>
<input type="checkbox" name="posesiones" value="coche" /> coche <br/>
<input type="checkbox" name="posesiones" value="perro" /> perro <br/>
<input type="checkbox" name="posesiones" value="chimenea" /> chimenea <br/>
</div>
Color favorito:
<select name="color">
<option value="negro">negro</option>
<option value="rojo">rojo</option>
<option value="verde">verde</option>
<option value="azul">azul</option>
</select>
<br />
<input type="reset" value="reestablecer" />
<input type="button" value="enviar" onclick="enviar('pasar-variables-transparentemente-2.html')" />
</form>
<script>
function dibujaIframeEntero(src) {
var elIframe = document.createElement("IFRAME");
elIframe.setAttribute("width","100%");
elIframe.setAttribute("height","100%");
elIframe.setAttribute("frameborder","0");
elIframe.setAttribute("src",src);
elIframe.setAttribute("name","ventana2");
elIframe.style.position="absolute";
elIframe.style.top="0px";
elIframe.style.left="0px";
document.body.appendChild(elIframe);
}
function enviar(src) {
dibujaIframeEntero(src);
}
</script>
SEGUNDO ARCHIVO, receptor:
Código PHP:
<script>
function e(q,noBr) {
document.body.appendChild( document.createTextNode(q) );
if(!noBr) document.body.appendChild( document.createElement("BR") );
}
function recibir() {
var fr = top.document.formulario;
e("nombre: "+fr.nombre.value);
e("edad: "+fr.edad.value);
e("pais: "+fr.pais.value);
for(var i=0; i<fr.sexo.length && !fr.sexo[i].checked; i++);
e("sexo: "+fr.sexo[i].value);
for(var i=0, posesiones=new Array(); i<fr.posesiones.length; i++)
if( fr.posesiones[i].checked )
posesiones[posesiones.length]=fr.posesiones[i].value;
e("posesiones: "+posesiones.join(","));
e("Color favorito: "+fr.color.value);
}
recibir();
</script>
nota: En firefox (por lo menos) si el segundo documento no tiene color de fondo, el valor aplicado es transparent, luego se verá la primera página por detrás. Recomiento poner bgcolor="white" en la etiqueta BODY en este ejemplo.
Así funcionaría, pero tendríamos problemas con el botón atrás (que se resolvería parcialmente poniendo un botón de [volver]).
.... o alguna chapuza parecida que sustituya al método POST.
Saludos