Ir para conteúdo

Arquivado

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

winters

Criar DIV com id's diferente e ocultar/exibir

Recommended Posts

Olá a todos. Estou com uma dúvida muito cruel aqui pessoal.

 

Estou desenvolvendo aqui uma galeria de imagens completa em php muito bacana mesmo, e na alteração das fotos listo todas elas com a legenda abaixo e com um botão EDITAR e outro EXCLUIR, estilo o orkut.

No botão EDITAR ele chama um link para abrir uma div que está oculta através do jQuery, porém o efeito funciona apenas na primeira div, e não nas demais. Eu li alguns comentários na net que as div's pra nesse caso deve ter os ID diferente, porém tentei de várias maneiras frustadas.

Vou postar os codes aqui para vocês ver.

 

DOU MINHA PALAVRA QUE SE ME AJUDAREM A RESOLVER ISSO, POST O SISTEMA COMPLETO AQUI!

 

Abraço

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GenePhotos</title>
<link rel="stylesheet" href="../../css/style.css" />
<link rel="stylesheet" href="../../css/style1.css" />
<link rel="stylesheet" href="../../css/css.css" />
<link rel="stylesheet" href="../../css/javascript.css"/>
<link rel="stylesheet" href="../../css/html.css"/>
<link rel="stylesheet" href="SlideShow_css/lightbox.css" type="text/css" media="screen" />
<link rel="shortcut icon" href="icone.ico" />
<script src="SlideShow_js/prototype.js" type="text/javascript"></script>
<script src="SlideShow_js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="SlideShow_js/lightbox.js" type="text/javascript"></script>
<script type="text/javascript" src="../../js/jQuery.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
$('#conteudo').hide();
  		$('a#exibir').click(function(){
		$('#conteudo').show('slow');
  	   	});
      	$('a#ocultar').click(function(){
 		$('#conteudo').hide('slow');
   	})
  });
</script>
<style type="text/css">
.image {margin:4px; padding:3px; background:#FFFFFF; border:1px solid #CCCCCC;}
</style>
</head>
<body scroll="auto">
<h2>Galeria de Fotos</h2><hr>
<p><img src="../../images/Arrow-Right.png" alt="v" width="25" height="25" align="absmiddle" class="img" /><a href="./">Início</a></p>
<div id="main">
<h2>Editar Fotos</h2>
           <p>
           <?php
           		include('conexao.php');
				$sql = "SELECT count(id) FROM albums_photos WHERE album = '". $_REQUEST['IDalbum'] ."'";
				$rs1 = mysql_query($sql);
				while($escrever=mysql_fetch_array($rs1))
				{
					echo "<p>Esse álbum tem ".$escrever['count(id)']." fotos.</p>";
				}
				mysql_close($conexao);
		?>
           <p>
           <?php
				include('conexao.php');
				$IDalbum = $_REQUEST['IDalbum'];
				$sql = "SELECT id, album, file, caption FROM albums_photos WHERE album = '". $_REQUEST['IDalbum'] ."'";
				$rs = mysql_query($sql);
				while($escrever=mysql_fetch_array($rs))
				{
					echo "<div class='divImg'>";
					echo "<a href='../../uploads/".$escrever['file']."' border=0 rel='lightbox[igreja]'>";
					echo "<img src='../../uploads/".$escrever['file']."' width='120' height='90' border='0' class='image' title='".$escrever['caption']."'/></a>";
					echo "<div id='title'>".$escrever['caption']."<div class='cls'></div>";
					echo "<a id='exibir' href='javascript:void(0);' class='exibir'>editar</a>";
					echo "<a id='ocultar' href='javascript:void(0);' class='ocultar'>excluir</a>";
					echo "<br><div id='conteudo'><input type='text' name='Caption' value='".$escrever['caption']."'></div>";
					echo "</div>";
					//echo "".date('d/m/Y', strtotime($escrever['added']));
					echo "</div>";
				}
				mysql_close($conexao);
           ?>
           </p>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu li alguns comentários na net que as div's pra nesse caso deve ter os ID diferente

prefira usar uma classe, no lugar de 'vários IDs'.

os métodos .next(), .parent() e .find() te ajudarão a navegar no DOM, para encontrar oque deve se mostrar.

 

Ou então, trabalhe com atributos, já que é bem simples que você quer fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William então no caso é mais fácil usar esses métodos para ele identificar qual foi clicado e exibir as informações de acordo com o clicado, correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

imagina assim:

 

<a href="#album1" class="exibir">Exibir</a>
..
<a href="#album2" class="exibir">Exibir</a>

 

e o album:

<div id="album1">...

<div id="album2">...

 

o teu jQuery ficaria apenas:

$('.exibir').click(function( e ){
  e.preventDefault();
  var href = $( this ).attr('href');
  $( href ).show();
});

 

simples.. basta você alterar o href de cada <a> e esse href corresponder ao ID do album.

a função jQuery será uma única para todos os albuns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, entendi o que você quis dizer... Acho que eu não expliquei certo o que eu desejo realmente, por isso estou mandando uma image para você ver o que estou tentanto fazer...

 

Vou postar o código que faz o que está na image.

 

11vlfkn.jpg

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GenePhotos</title>
<link rel="stylesheet" href="../../css/style.css" />
<link rel="stylesheet" href="../../css/style1.css" />
<link rel="stylesheet" href="../../css/css.css" />
<link rel="stylesheet" href="../../css/javascript.css"/>
<link rel="stylesheet" href="../../css/html.css"/>
<link rel="stylesheet" href="SlideShow_css/lightbox.css" type="text/css" media="screen" />
<link rel="shortcut icon" href="icone.ico" />
<script src="SlideShow_js/prototype.js" type="text/javascript"></script>
<script src="SlideShow_js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="SlideShow_js/lightbox.js" type="text/javascript"></script>
<script type="text/javascript" src="../../js/jQuery.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
$('#conteudo').hide();
  		$('a#exibir').click(function(){
		$('#conteudo').show('slow');
  	   	});
      	$('a#ocultar').click(function(){
 		$('#conteudo').hide('slow');
   	})
  });
</script>
<style type="text/css">
.image {margin:4px; padding:3px; background:#FFFFFF; border:1px solid #CCCCCC;}
</style>
</head>
<body scroll="auto">
<h2>Galeria de Fotos</h2><hr>
<p><img src="../../images/Arrow-Right.png" alt="v" width="25" height="25" align="absmiddle" class="img" /><a href="./">Início</a></p>
<div id="main">
<h2>Editar Fotos</h2>
           <p>
           <?php
           		include('conexao.php');
				$sql = "SELECT count(id) FROM albums_photos WHERE album = '". $_REQUEST['IDalbum'] ."'";
				$rs1 = mysql_query($sql);
				while($escrever=mysql_fetch_array($rs1))
				{
					echo "<p>Esse álbum tem ".$escrever['count(id)']." fotos.</p>";
				}
				mysql_close($conexao);
		?>
           </p>
           <p>
           <?php
				include('conexao.php');
				$IDalbum = $_REQUEST['IDalbum'];
				$sql = "SELECT id, album, file, caption FROM albums_photos WHERE album = '". $_REQUEST['IDalbum'] ."'";
				$rs = mysql_query($sql);
				while($escrever=mysql_fetch_array($rs))
				{
					echo "<div class='divImg'>";
					echo "<a href='../../uploads/".$escrever['file']."' border=0 rel='lightbox[igreja]'>";
					echo "<img src='../../uploads/".$escrever['file']."' width='120' height='90' border='0' class='image' title='".$escrever['caption']."'/></a>";
					echo "<div id='title'>".$escrever['caption']."<div class='cls'></div>";
					echo "<a href='editaFotoSelect.php?idFoto=".$escrever['id']."' class='exibir'>editar</a>";
					echo "<a href='javascript:void(0);' class='ocultar'>excluir</a>";
					echo "<br><div id='conteudo'><input type='text' name='Caption' value='".$escrever['caption']."'></div>";
					echo "</div>";
					//echo "".date('d/m/Y', strtotime($escrever['added']));
					echo "</div>";
				}
				mysql_close($conexao);
           ?>
           </p>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá bom..

eu tinha entendido sim.

 

é só você fazer oque eu disse.

 

#album+um contador

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala William, boa tarde tudo bem?

 

Brother, já tentei de todo jeito que você possa imaginar, tentei da forma que você falou, não consegui, não estou conseguindo implementar o que você me passou...

 

Ta díficil resolver isso.

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. é super simples, olhe o trecho:

 

echo "<a href='#conteudo".$i."' class='ocultar'>excluir</a>";
echo "<br><div id='conteudo".$i."'><input type='text' name='Caption' value='".$escrever['caption']."'></div>";

 

e pronto! tá feito.

Basta você criar esse contador agora.

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.