Foros del Web » Programando para Internet » PHP »

Como embeber valor obtenido por script en PHP?

Estas en el tema de Como embeber valor obtenido por script en PHP? en el foro de PHP en Foros del Web. Como embeber valor obtenido por script en PHP? hola, tengo un problema y me gustaria ver si me pueden ayudar. Necesito ajustar el width de ...
  #1 (permalink)  
Antiguo 08/04/2007, 06:54
niv3web
Invitado
 
Mensajes: n/a
Puntos:
Como embeber valor obtenido por script en PHP?

Como embeber valor obtenido por script en PHP?

hola, tengo un problema y me gustaria ver si me pueden ayudar.

Necesito ajustar el width de un div, mediante el atributo style, segun el anchio de la resolucion del monitor. Hasta donde se no hay una forma de hacerlo en Php pero si encontre una forma de averiguar dicho valor utilizando un script. Mi idea es la de utilizar dicho valor que arroja el script y embeberlo dentro del codigo php. Y esto es lo que no estoy muy seguro de como hacerlo, porque le he buscado la buelta y nada, no hay forma de darle en el punto.

Antes que me tiren con palos aclaro porque necesito esto. Es necesario que dependiendo del navegador que utiliza el visitante y en funcion de la configuracion de su monitor este width del div tome un valor diferente. Esto es para solucionar un corrimiento que se da en la cabecera de una pagina que usa marcos. Acloro que yo no hubiera usado el marco antes de que me digan no lo uses, el cliente lo quiere asi. en fin. Aca va el codigo para ver si me pueden ayudar.

El script que saca la resolucion del monitor (va en la cabecera):

Código HTML:
<script language='JavaScript1.2' type='text/javascript'>
function sacar_resolucion {
var ancho == (screen.width);
}
</script> 

El Php que muestra el flash de la cabecera:

Código PHP:
<?php 
/////////////// correccion del corimiento de la cabecera. Según sea o no el explorer se dibuja uno u otro stylo. /////////////
if (ereg("MSIE 6.0" || "MSIE 7.0" $_SERVER['HTTP_USER_AGENT'])){ // Hay que buscar la forma de que el ancho que aqui se ve de 1280px (width:1280px) sea igual al del ancho de la resolucion del monitor. Para esto se puede utilizar el script que se ve en la cabecera. Si se puede tomar dicho valor de la funcion "sacar_resolucion" y utilizarlo para asignarle a este ancho dentro de la etiqueta style del div, todo funcionara perfectamente. Le busque la buelta pero se muy poco de como embeber codigo de script dentro de php y no pude hacerlo quedar bien. Se puede hacer un echo como el siguiente para cada navegador. Esto seria lo ideal, pero de todas formas con estos 2 alcanzara. al menos eso creo. En el Explorer 7 esta funcionando bien. El left de -10 que se ve despues del valor de z-index es el corrimiento que se hace para que la cabecera quede alineada con el body. Es el valor que hay que modificar segun cada navegador.*/
/* IMPORTANTE: si no se puede sacar la resolucion del monitor para utilizarla como el width del div nada de esto funcionara */
 
echo "<div style='z-index: 1000; left: -10px; position: absolute; top: 0px; width:1280px' align='center'>
<table width='759' height='100' border='0' align='center' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='20' height='175' align='center' valign='top' background='imagenes/border_lateral_izquierdo.jpg'><img src='imagenes/border_lateral_izquierdo.jpg' width='20' height='2'></td>
    <td width='719' align='center' valign='top'>
 
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='downloadmacromedia/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='719' height='175'>
      <param name='movie' value='imagenes/flash/cabecera.swf'>
      <param name='quality' value='high'>
      <embed src='imagenes/flash/cabecera.swf' quality='high' pluginspage='macromedia/go/getflashplayer' type='application/x-shockwave-flash' width='719' height='175'></embed>
    </object>
  </td>
    <td width='20' align='center' valign='top' background='imagenes/borde_lateral_derecho.jpg'><img src='imagenes/borde_lateral_derecho.jpg' width='20' height='2'></td>
  </tr>
</table> 
 </div>"
;
}
else {
echo 
"<div style='z-index: 1000; left: -10px; position: absolute; top: 0px; width:1280px' align='center'>
<table width='759' height='100' border='0' align='center' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='20' height='175' align='center' valign='top' background='imagenes/border_lateral_izquierdo.jpg'><img src='imagenes/border_lateral_izquierdo.jpg' width='20' height='2'></td>
    <td width='719' align='center' valign='top'> 
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='downloadmacromedia/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='719' height='175'>
      <param name='movie' value='imagenes/flash/cabecera.swf'>
      <param name='quality' value='high'>
      <embed src='imagenes/flash/cabecera.swf' quality='high' pluginspage='macromedia/go/getflashplayer' type='application/x-shockwave-flash' width='719' height='175'></embed>
    </object>
  </td>
    <td width='20' align='center' valign='top' background='imagenes/borde_lateral_derecho.jpg'><img src='imagenes/borde_lateral_derecho.jpg' width='20' height='2'></td>
  </tr>
</table> 
 </div>"
;
}
///////////////////////////////////////////////////////////////////////////////////////
/* CON LOS VALORES ACTUALES DEL DIV FUNCIONA BIEN PARA 1280X1024 */
 /* SI SE LOGRA UTILIZAR EL VALOR SACADO CON EL SCRIPT PARA DICHO VALOR FUNCIONARA EN CUALQUIER RESOLUCION DE MONITOR*/

/// SUERTE ////////////////////////////////////////////////////////////////////////////////////////
?>
La pagina web en cuestion es triple doble v talleresdonbosco punto edu punto uy

Desde ya muchas gracias, por la ayuda.
  #2 (permalink)  
Antiguo 08/04/2007, 10:42
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Como embeber valor obtenido por script en PHP?

Tu problema, como lo planteas es mas bien de javascript y no de php. Cuando se ejecuta javascript, php hace rato que termino su labor por lo cual no pdoes pasar un valor de javascript a php, si al reves. De todos modos, creo que necesitas algo como esto(suponiendo que la funcion que te calcula el ancho de pantalla es correcta):

Código HTML:
<script language='JavaScript1.2' type='text/javascript'> 
function sacar_resolucion 
{ 
          var ancho == (screen.width); 
          return ancho;
        
} 
function cambia_ancho()
{
          var div = getElementById('id_del_div_en_cuestion');
          div.style.width = sacar_resolucion();
}

/*
* Y la funcion cambia_ancho supongo que la deberias llamar en el evento onLoad de tu pagina
* Puede que haya algun error sintactico, no soy de buena memoria :P
*/
</script> 
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 10/04/2007, 12:14
niv3web
Invitado
 
Mensajes: n/a
Puntos:
Re: Como embeber valor obtenido por script en PHP?

Pues muchas gracias por la contribucion federico, pero no hubo forma. Sigue sin funcionar. El problema es que el div debe necesariamente mostrarse dentro de un echo porque segun que navegador utilice el visitante se da una u otra salida. O sea que sigo en la misma buelta poque el php se procesa antes que el script y por lo tanto el valor de la resolucion del monitor no esta disponible.

Intente utilizar el div fuera del echo para ver si funcionaba pero tampoco andubo.

Creo que la unica solucion seria utilizar una funcion de PHP que pueda hacer lo mismo que el script, pero hasta donde se eso no es posible.

Si alguien tien alguna sugerencia o se encontro con este mismo problema, espero mas respuestas o sugerencias.

Yo necesito que el valor que se muestra aqui (marcado con asteriscos) se corresponda con el ancho de la resolucion del monitor del visitante.

Código PHP:
echo "<div style='z-index: 1000; left: -10px; position: absolute; top: 0px; width: ***************  px' align='center'> 
<table width='759' height='100' border='0' align='center' cellpadding='0' cellspacing='0'> 

Salu2.

Rodrigo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:36.