Foros del Web » Programando para Internet » PHP »

Como darle a una variable php, el ancho de pantalla??

Estas en el tema de Como darle a una variable php, el ancho de pantalla?? en el foro de PHP en Foros del Web. Hola, con la intecion de cumplir con el objetivo de darle a la variable $width el valor del ancho de la pantalla del cliente y ...
  #1 (permalink)  
Antiguo 24/07/2005, 21:24
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Como darle a una variable php, el ancho de pantalla??

Hola, con la intecion de cumplir con el objetivo de darle a la variable $width el valor del ancho de la pantalla del cliente y luego operar con esa variable aritmeticamente, utilize un Javascript pero tengo un problema....


Supongamos que mi resolucion de pantalla es 1024x768, con 'echo' veo que queda en la variable.

El código es:
------------------------------------------------------------
$width = "<script>document.write(screen.width); </script>";
echo $width; ---------------> 1024

$width = $width * 2;
echo $width; ------------------> 0
-------------------------------------------------------------
El problema es cuando quiero operar aritmeticamente(dividir, mult, comparar) por algun valor la variable $width, me anula el valor, entonces no se por que pasa esto.

Si alguien puede ayudarme se lo voy a agradecer....

Saludos,

Andrés
  #2 (permalink)  
Antiguo 24/07/2005, 22:04
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
Estas seguro que ese $width funciona?? porque la variable no tendrá el valor del ancho de la pantalla sino todo el codigo javascript... por eso es que al multiplicarlo da 0... 0 * 2 = 0...

La unica solución que he encontrado en la web para pasar variables de JavaScript a PHP es seteando una cookie...

Setea una cookie con javascript enviando el valor que quieres usar y luego lees la cookie con PHP...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 24/07/2005, 22:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 12 años, 10 meses
Puntos: 0
Cita:
echo $width; ---------------> 1024
¿comprobaste eso? $width vale "<script>document.write(screen.width); </script>" porque el php no ejecuta javascript.

Podrías pasar ese valor por una cookie o por URL.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #4 (permalink)  
Antiguo 25/07/2005, 09:09
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Miren

Por favor compruebenlo ustedes mismo:

http://www.kservice.com.ar/test.php


El codigo de esta pagina es:

<?
$width = "<script>document.write(screen.width); </script>";
echo $width;

echo "<br>";

$width = $width * 2;
echo $width;
?>

Si bien no funciona , quisiera saber por que al operarla pierde el valor que tenia.
  #5 (permalink)  
Antiguo 25/07/2005, 13:35
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
No, es que no entiendes :s

Al hacer el primer echo te dara el resultado porque lo que estas haciendo es imprimir todo el codigo javascriot...
Es lo mismo que hicieras:
echo '<script>document.write(screen.width);</script>';

Si tu quitaras el document.write verias que no sale nada... (solo apareceria el javascript en el codigo fuente)


Como dije antes... $width * 2 = 0 porque $widht es 0.
__________________
I Love Programming...
  #6 (permalink)  
Antiguo 25/07/2005, 14:09
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
si ya comprendí por que me mostraba 1024, pude conseguir lo que necesitaba con el metodo de crear una cookie con el ancho de pantalla, lo unico es que todo el mundo no tiene las cookies activadas, en este caso no me va a funcionar.
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 16:01.