Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beto Lima

Pegar altura de div

Recommended Posts

Alguém sabe como pegar o valor da altura de uma div com php? sem usar javascript.

 

Até consigo usar js mas não consigo pegar este valor e jogar pro php.

 

Ex:

 

tenho uma div no lado esquerdo que conforme o conteúdo ela vai aumentando o height. e essa div tem uma borda lateral com uma imagem.

 

Quero pegar o valor da altura dela e passar este mesmo valor pra div do lado direito para que ambas fiquem do mesmo tamanho e com as bordas nos lugares....

 

Só que preciso pegar esse valor com php...

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu exemplo é esse

 

<div id="menu">

Conteudo

</div>

 

 

<script>

var tam = document.getElementById("menu").offsetHeight;

if (document.getElementById("menu").offsetHeight > 350) {

<?php $valor = "document.write(tam)";

echo $valor; //só pra mostrar o valor atual da div

?>

}

</script>

 

 

<div id="principal" style="height:<?php echo $valor;?>">

conteudo

</div>

 

 

ao invés de mostrar o valor no height da div principal, mostra "document.write(tam)"

 

É esse meu problema, quero largar o valor na height e não consigo.

 

Alguém tem alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você está tentando fazer não tem lógica, PHP é uma coisa, Javascript é outra.

Olha o código fonte do navegador pra você entender melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

// não entendi porque dessa variavel

var tam = document.getElementById("menu").offsetHeight;

if (document.getElementById("menu").offsetHeight > 350) {

document.write(tam); // imagino que isso seja um teste, mas você pode definir o tamanho da div aqui

elementoquevcquermodificar.largura = valor;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu só coloquei o document.getElementById("menu").offsetHeight; dentro da variavel "tam"

e testei se ela for maior que 350px, imprimir o valor dela.

 

Mas o elemento que quero modificar é a altura da div que vem depois do script.

a div principal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria melhor você postar esta questão no fórum de Javascript...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae Betão! Bão?!

 

Cara, você tem que entender uma coisa muito importante... O PHP é uma linguagem que roda do lado do servidor e o JavaScript roda do lado do cliente. Isso quer dizer que o PHP roda no servidor, executa tudo que tem que executar e depois envia para usuário (cliente) um conjunto de informações já processadas.

 

Depois que essas informações foram enviadas, não tem como rodar o PHP novamente pelo método convencional... tudo que o PHP tinha que fazer, já fez!

 

No entanto, você poderá rodar ainda alguma linguagem que rode do lado do cliente, como o JavaScript. Só que não tem como mais pegar algo do JavaScript e jogar novamente no PHP, pois o PHP já morreu, bateu as botas, escafedeu-se, já elvis, bau bau... :blink:

 

O que você está tentando fazer é jogar o tamanho de um div no PHP, depois que esse div já foi enviado para o cliente. Cara, não tem como ressucitar mortos assim se não for com o uso de determinadas gambiarras (=AJAX).

 

Agora, você pode fazer o seguinte: criar AINDA NO PHP, uma variável que armazene o tamanho da div e enviar esse tamanho para o JavaScript processar, pois o JavaScript só roda depois do PHP ter rodado. O JavaScript então irá redimensionar a div, com o tamanho que foi determinado ainda no PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dae Kondler, entendi a sua msg...

 

só que as div não tem tamanhos fixos pra jogar em uma variável do php.

elas aumentam conforme o conteúdo.

 

 

até consegui fazer uma gambiarra, mas no firefox não funcionou. funcionou legal no IE e OPERA.

 

Segue exemplo:

 

<div id="menu">conteudo</div>

<div id="principal">conteudo</div>

 

<script>

if (document.getElementById("menu").offsetHeight > 370) {

document.getElementById("principal").style.height = document.getElementById("menu").offsetHeight;

}

</script>

 

O que isso faz?

a div do lado esquerdo "menu" tem como seguinte css:

e a div principal segue o css abaixo também.

 

#menu {

width:180px;

min-height:370px;

float:left;

background:url(../images/line_left.jpg) repeat-y left;

background-color:#fff;

}

#principal {

width:578px;

min-height:370px;

height:100%;

float:left;

background:url(../images/line_right.jpg) repeat-y right;

background-color:#ccc;

}

 

Resumindo: do lado esquerdo mostra uma borda assombreada, um jpg, que conforme aumentando conteúdo, vai preenchendo a borda.

já do lado direito a borda não preenche e fica cortada.

 

Os js funcionam assim: Caso lado esquerdo for maior que 370, pegar o valor atual e transferir para o lado direito para as duas ficarem do mesmo tamanho e mostrar as bordas. Como falei antes no IE e OPERA rodou legal, só Firefox que não funcionou.

 

Agora de tanto se estressar com isso, apelei pra tabelas. Não queria usar tabelas mas não tive saída.

Também nem vou mais insistir nisso agora, se alguém tiver um exemplo que funcione e quiser mostrar, ÓTIMO.

 

Obrigado a todos pela atenção.

 

Em breve colocarei o layout para avaliação de vocês...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.