Ok. Entonces parece ser que el problema se restringe a un IFrame. Sigo haciendo pruebas y la verdad es que no encuentro nigún problema con IE7.
De todas formas, insisto, creo que es una manera muy complicada de cargar la página, sobre todo cuando podrías hacerlo sin hacer peticiones al servidor.
Usando javascript puedes cambiar la propiedad
src del iframe. Aquí te pongo un ejemplo:
Código PHP:
<?php
$frameSource = '';
$paginas = array(
'bMySQL' => 'http://mysql.com',
'bPHP' => 'http://php.net',
'bApache' => 'http://apache.org'
);
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (isset($_POST['bMySQL']))
{
$frameSource = $paginas['bMySQL'];
}
if (isset($_POST['bPHP']))
{
$frameSource = $paginas['bPHP'];
}
if (isset($_POST['bApache']))
{
$frameSource = $paginas['bMySQL'];
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
<meta name='generator' content='editplus'>
<meta name='author' content='román sánchez'>
<title> Menú </title>
<script type='text/javascript'>
function cambia(boton)
{
var marco = document.getElementById('contenido');
switch (boton.name)
{
case 'bMySQL':
marco.src = '<?php echo $paginas["bMySQL"] ?>';
break;
case 'bPHP':
marco.src = '<?php echo $paginas["bPHP"] ?>';
break;
case 'bApache':
marco.src = '<?php echo $paginas["bApache"] ?>';
break;
}
return false;
}
</script>
</head>
<body>
<form method='post' action=''>
<table border='1'>
<tr>
<td><button type='submit' name='bMySQL' onclick='cambia(this)'>MySQL</button></td>
<td rowspan='3'><iframe src='<?php echo $frameSource ?>' id='contenido' name='contenido' width='640' height='480'></iframe></td>
</tr>
<tr>
<td><button type='submit' name='bPHP' onclick='return cambia(this)'>PHP</button></td>
</tr>
<tr>
<td><button type='submit' name='bApache' onclick='return cambia(this)'>Apache</button></td>
</tr>
</table>
</form>
</body>
</html>
Cada botón tiene un evento onclick que llama a la función cambia() de javascript. Esta función se encarga de cambiar el atributo src del iframe dependiendo del botón que la haya llamado.
Si te fijas, dicha función regresa
false, evitando así que se realice el
submit, esto es, los datos no se envían al servidor y el cambio de página se hace desde el mismo cliente.
Por otra parte, si el usuario tiene deshabilitado el uso de javascript, entonces la función no se llama y se realiza el
submit normal. En este caso entra en juego PHP para deterrminar qué boton hizo el envío y, de esta forma, ajustar el valor del src del iframe convenientemente.
Pero aún más. Si en lugar de usar botones usaras enlaces, te evitarías tanto rollo, ya que puedes dirigir el
href del enlace directamente al iframe sin necesidad de javascript
:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
<meta name='generator' content='editplus'>
<meta name='author' content='román sánchez'>
<title> Menú </title>
</head>
<body>
<form method='post' action=''>
<table border='1'>
<tr>
<td><a href='http://mysql.com' target='contenido'>MySQL</a></td>
<td rowspan='3'><iframe src='' id='contenido' name='contenido' width='640' height='480'></iframe></td>
</tr>
<tr>
<td><a href='http://php.net' target='contenido'>PHP</a></td>
</tr>
<tr>
<td><a href='http://apache.org' target='contenido'>Apache</a></td>
</tr>
</table>
</form>
</body>
</html>
// Saludos