• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fil79

[Resolvido] php com javascript

5 mensagens neste tópico

gostaria de esticar uma imagem que está contida numa tabela conforme a resolução (largura neste caso) do monitor...para tal elaborei este script mas  aparece uma página em branco... :wallbash:

<?php

$largura="<script language='JavaScript' type='text/javascript'>document.write(window.screen.height);</script>";

if($largura=="600"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=400 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

}elseif($largura=="768"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=600 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso assim, diz que a variavel e o que la esta dentro (o javascript), e nao o valor da resolucao.

Podes e criar uma pagina com o javascript, e passar a resolução para o php atraves dum GET

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas se eu fizer assim:

<?php

$largura="<script language='JavaScript' type='text/javascript'>document.write(window.screen.height);</script>";

echo"$largura";

aparece 768 daí eu ficar confuso porque não funciona o código:


if($largura=="600"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=400 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

}elseif($largura=="768"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=600 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exacto.

A variavel largura vai conter o codigo javascript, que ao ser escrito na página, é executado, e portanto vai fazer aquilo que está lá: escrever a largura da janela no documento.

Do ponto de vista do PHP, a variável $largura tem *sempre* o valor "<script language='JavaScript' type='text/javascript'>document.write(window.screen.height);</script>".

O que tens de fazer é enviar a largura e/ou altura da página para o PHP, usando um parametro GET, por exemplo, como ja foi dito.

Ou qualquer coisa deste género, supondo que queiras ter essa variavel definida assim que alguem entre no site:

index.php:

<html>
<head>
<script language="javascript">
function outraPagina()
{
document.getElementById('largura').value = window.screen.height;
document.getElementById('form1').submit();
}
</script>

...

</head>
<body onload="outraPagina()">
<form name="form1" id="form1" action="index2.php" method="post">
<input type="hidden" value="" name="largura" />
</form>
</body>
</html>

Isto basicamente vai criar uma pagina em branco, que assim que for carregada vai enviar o preencher o valor do campo largura, que está oculto, com a largura da pagina, e fazer o submit. O submit vai parar ao index2.php (altera isso para a pagina que te der jeito). Dentro desse ficheiro já temos acesso á variavel $_POST['largura'], que contem a largura da janela:

ficheiro index2.php:


...

if($_POST['largura']=="600"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=400 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

}elseif($_POST['largura']=="768"){

echo"<div id=ponto style='position:absolute; left:100px; top:0px; width:14px; height:400px; z-index:1'><table width=3 height=600 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=13 background='ponto.jpg'> </td>
  </tr>
</table>
</div>";

...

Isto não foi testado, mas a partida deve funcionar. Isto tem uma desvantagem, é que pode "breakar" o botão retroceder, não tenho a certeza, só vendo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora