Google
Web dns.bdat.net

PHP y JavaScript

Unos de las principales confusiones de quienes se inician en la programación en PHP es no distinguir el ámbito de ejecución de los distintos elementos de una página dinámica. Hay que tener claro que PHP se ejecuta en el servidor generando un código HTML que le envía al cliente. El código JavaScript siempre se ejecuta en la máquina cliente. Aclarado este importante punto pasamos a ver cómo podemos relacionar y coordinar la ejecución de ambos lenguajes integrados en una página dinámica.

Pasar una variable JavaScript a PHP

Para pasar una variable de JavaScript a PHP de alguna forma tendremos que enviarla al servidor que es donde se ejecuta realmente PHP. Una forma que evita tener que realizar acciones por parte del usuario es utilizar un formulario:

<?

echo "<html><head>

<script language=Javascript>

var vjava='valor de vjava';

</script>

</head>

<body>";

if (empty($varphp))

{

echo "<form action=$PHP_SELF method=POST name=formulario>";

echo "<input type=hidden name=varphp>";

echo "</form>";

echo "<script language=Javascript>document.formulario.varphp.value=vjava;";

echo "document.formulario.submit() ";

echo "</script>";

}

else

echo "--- varphp=$varphp ----";

echo "</body></html>";

?>

Averiguar la resolución del cliente

Basándonos en el ejemplo anterior podemos pasar a PHP cualquier propiedad del cliente que sea accesible desde JavaScript. Ahora, como ejemplo vemos como determinar la resolución de pantalla que usa el cliente:

<?

echo "<html><head>

<script language=Javascript>

var ancho=screen.width;

var alto=screen.height;

</script>

</head>

<body>";

if (empty($altophp))

{

echo "<form action=$PHP_SELF method=POST name=formulario>";

echo "<input type=hidden name=anchophp>";

echo "<input type=hidden name=altophp>";

echo "</form>";

echo "<script language=Javascript>

 document.formulario.anchophp.value=ancho;

 document.formulario.altophp.value=alto;";

echo "document.formulario.submit() ";

echo "</script>";

}

else

echo "--- ancho=$anchophp ----<br>--- alto=$altophp ----";

echo "</body></html>";

?>

Averiguar el tamaño de la ventana

Con una ligera modificación podemos determinar el tamaño de la ventana que está utilizando el cliente. Esto puede ser útil para ajustar ciertos parámetros como ancho de tablas u otros a la ventana que se esté utilizando.

<?

echo "<html><head>

<script language=Javascript>

if (parseInt(navigator.appVersion)>3)

{

  if (navigator.appName=='Netscape')

 {

    alto = window.innerWidth;

    ancho = window.innerHeight;

  }

  if (navigator.appName.indexOf('Microsoft')!=-1)

 {

    alto = document.body.offsetWidth;

    ancho = document.body.offsetHeight;

  }

}

</script>

</head>

<body>";

if (empty($altophp))

{

echo "<form action=$PHP_SELF method=POST name=formulario>";

echo "<input type=hidden name=anchophp>";

echo "<input type=hidden name=altophp>";

echo "</form>";

echo "<script language=Javascript>

 document.formulario.anchophp.value=ancho;

 document.formulario.altophp.value=alto;";

echo "document.formulario.submit() ";

echo "</script>";

}

else

echo "--- ancho=$anchophp ----<br>--- alto=$altophp ----";

echo "</body></html>";

?>

Abrir una ventana nueva con valores en PHP

Ahora veremos una serie de ejemplos en los cuales se genera código JavaScript a partir del contenido de variables en PHP. En primer lugar un ejemplo simple que abre una ventana nueva con la posibilidad de controlar todos sus parámetros:

<?

echo "<html><head><body>";

$pag[0]="sesion-01.php";

$pag[1]="nombre";

$pag[2]="toolbar=no";

$pag[3]="location=no";

$pag[4]="directories=no";

$pag[5]="status=no";

$pag[6]="menubar=no";

$pag[7]="scrollbars=no";

$pag[8]=" resizable=no";

$pag[9]="width=150";

$pag[10]="height=150";

echo "<script language=Javascript>";

echo "ventana=open('$pag[0]','$pag[1]',' $pag[0],$pag[1],$pag[2],$pag[3],$pag[4],$pag[5],$pag[6],$pag[7],$pag[8]','$pag[9]',' $pag[10]')";

echo "</script>";

echo "</body></html>";

?>