Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2008, 05:49
vega22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 16 años, 7 meses
Puntos: 0
Funcion detectar resolucion pantalla

He creado esta función para ello, ya que tengo una cabecera en flash elástica:
Código:
<?php 
if(isset($HTTP_COOKIE_VARS["width_res"])) 
$res_pantalla = $HTTP_COOKIE_VARS["width_res"];
else {
?>
<script type="text/javascript">
function creaCookie(nombre,valor,caducidad,path,domain,secure) {
var valor = screen.width
var dia_fin = new Date();
dia_fin.setDate(dia_fin.getDate() + caducidad);
document.cookie = nombre + "=" + escape(valor) +
((caducidad==null) ? "" : "; expires=" + dia_fin.toGMTString()) +
((path==null) ? "" : "; path=" + path) +
((domain==null) ? "" : "; domain=" + domain) +
((secure==null)? "" : "; secure"); 
}

creaCookie('width_res','valor'); 
if (document.cookie){  
        location = "index.php";
 }
 </script>
<?
}
switch ($res_pantalla) {
case 1024:
$flash_res="cabecera1024.swf";
break;
case 1280:
$flash_res="cabecera1280.swf";
break;
case 1360:
$flash_res="cabecera1360.swf";
break;
case 1400:
$flash_res="cabecera1400.swf";
break;
case 1440:
$flash_res="cabecera1440.swf";
break;
case 1600:
$flash_res="cabecera1600.swf";
break;
case 1680:
$flash_res="cabecera1680.swf";
break;
default:
$flash_res="cabecera1024.swf";
}
?>
No pasa nada, así funciona bien parece. El tema es que he querido hacer lo mismo pero en lugar de emplear el bloque switch, emplear un bloque condicional normal (if...{bla bla}; elseif...) y no funciona. No me da errores de sintaxis, simplemente no respeta los valores que le meto. Según unas sintaxis elige siempre el último valor de la cadena condicional y según otras se queda con la primera. A ver si alguien en un momento me escribe como lo haría y me cosco de dónde está mi error al querer hacerlo así.

Por cuestiones de aprendizaje me gustaría poder hacerlo de los dos modos (siempre me ha parecido la opcion switch las condicionales para torpes)