Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal então estou enfrentando um problema aqui que não sei ao certo como resolver, mas provavelmente seria Javascript/Jquery.
meu problema é o seguinte, eu tenho uma lista de botões que são inseridos dentro de um foreach, mas após cada botão ser inserido eu insiro uma tag <object> que fica com o style="display:none;" e quando clicado no botão esse style muda para display:block; o meu problema está ai, quando eu clico no botao e o conteudo de object aparece de fato os outros botões após aquele são "jogados para baixo".
Por exemplo:
<button id="1"><object id=object 1><button id="2"><object id=object 2><button id="3"><object id=object 3>
ou seja, ao clicar por exemplo no botao 2, o botao 3 é arrastado para abaixo daonde o conteudo é exibido, eu gostaria de saber se há alguma forma de isso ser resolvido.
Vou botar os trechos de código do qual eu me refiro para facilitar o entendimento da galera.
if ( isset($object[$project][$tab]) )
{
if ($tab <> 'publicacao') {
echo $object[$project][$tab] . "&" . $date[$project][$tab] . "&" . $link;
}
else {
foreach ($object[$project][$tab] as $index => $value) {
//echo "<a href= \"$value\" >\".Publicação $index.\"</a></br>";
//echo $value;
echo "<button class='pub $index' onclick=\"botao ($index)\" style=\"display:inline !important;\">Publicação $index </button>";
echo "<object data=$value id=\"$index\" height=\"788px\" type=\"application/pdf\" width=\"1427px\" style=\"display:none;\"></object>";
}
}
}
function botao (index)
{
var TAM = <?php echo $arrlength; ?>;
//document.getElementById(index).style.display="block";
//var el = document.getElementByClass(index);
for (var i=1;i<=TAM;i++)
{
if ( i == index){
document.getElementById(i).style.display="block";
}
else{
document.getElementById(i).style.display="none";
}
}>
i aew cara, bom olhando seu código percebi que você coloca a tag button seguido da tag object, no html as coisas são exibidas na ordem em que são colocadas, então parece bem óbvio que a tag object com id 1 seja exibida antes do 2º button, você resolveria isso facilmente deixando o laço assim:
buttons = ""; objects = ""; foreach ($object[$project][$tab] as $index => $value) { buttons .= "<button class='pub $index' onclick=\"botao ($index)\" style=\"display:inline !important;\">Publicação $index </button>"; objects .= "<object data=$value id=\"$index\" height=\"788px\" type=\"application/pdf\" width=\"1427px\" style=\"display:none;\"></object>"; } echo buttons; echo objects;
espero que ajude, abraço!
Nossa cara, não é que funcionou??
Obrigado brother!!!
:yes:
Gente esse código funciona bem só tem um porém..
AS publicações nao estao zerando ao sair do foreach, eu já tentei botar $index=0 depois de rodar o for each mas nao ta indo..
ai no caso o index está somando os valores para todas as abas..
se por exemplo tem 5 publicações na aba x e 2 na aba y, a aba y como aparece depois ao invés de começar com Publicação 1, publicação 2 está começando com publicação 6, publicação 7, ou seja está pegando os valores da outra aba!
Alguem sabe como posso resolver isso(fazer o index zerar )
Obrigado desde já galera!
up
i aew cara, bom olhando seu código percebi que você coloca a tag button seguido da tag object, no html as coisas são exibidas na ordem em que são colocadas, então parece bem óbvio que a tag object com id 1 seja exibida antes do 2º button, você resolveria isso facilmente deixando o laço assim:
espero que ajude, abraço!