Ir para conteúdo

POWERED BY:

Arquivado

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

marcelo2605

[Resolvido] Galeria Lightbox + MySQL: legendas não aparecem

Recommended Posts

Pessoal, tenho uma galeria de fotos dinâmicas e gostaria de colocar legendas diferentes em cada foto.

 

Criei na tabela o campo legenda e adicionei os dados.

 

Na página exibir, o código ficou assim:

 

<div id="gallery">
      <?php $legenda = $_GET['legenda']; ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank'><img src='$filename' width='80' height='53' title='$legenda'></a> ";
}
?>
       </div>

 

O problema é que não deu certo. A galeria funciona direitinho, mas não não pega as legendas do banco de dados. Tenho que alterar alguma configuração no arquivo .js?

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse $_GET['legenda'] .. você envia os dados da foto selecionada pra mesma

 

pagina pra ele processar e imprimir ?

 

não seria a query e um fetch array pra trazer a legenda gravada no banco ?

 

Andrey, o query e o fetch já estão na página:

 

mysql_select_db($database_db_SAR10, $db_SAR10);
$query_rsEsporte = "SELECT * FROM esporte";
$rsEsporte = mysql_query($query_rsEsporte, $db_SAR10) or die(mysql_error());
$row_rsEsporte = mysql_fetch_assoc($rsEsporte);
$totalRows_rsEsporte = mysql_num_rows($rsEsporte);

 

A minha dúvida é se eu preciso modificar o código da lightbox para aparecer a legenda:

 

 * Show the image information
	 *
	 */
	function _show_image_data() {
		$('#lightbox-container-image-data-box').slideDown('fast');
		$('#lightbox-image-details-caption').hide();
		if ( settings.imageArray[settings.activeImage][1] ) {
			$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
		}
		// If we have a image set, display 'Image X of X'
		if ( settings.imageArray.length > 1 ) {
			$('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show();
		}		
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey, mas não foi isso que fiz no código?

 

<?php $legenda = $_GET['legenda']; ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank'><img src='$filename' width='80' height='53' title='$legenda'></a> ";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi , mais o $_GET[] .. foi oque eu te perguntei se você está chamando essa pagina por outra pagina ..

bota assim

 

<?php $legenda = $row_rsEsporte['legenda']; // variavel que armazena o fetch ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank'><img src='$filename' width='80' height='53' title='$legenda'></a> ";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey, não rolou. Tentei até trocar o hide que aparecia no código .js do lightbox, mas nada aconteceu

 

function _show_image_data() {
		$('#lightbox-container-image-data-box').slideDown('fast');
		$('#lightbox-image-details-caption').show();
		if ( settings.imageArray[settings.activeImage][1] ) {
			$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
		}
		// If we have a image set, display 'Image X of X'
		if ( settings.imageArray.length > 1 ) {
			$('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show();
		}		
	}

 

Andrey, funcionou agora! Eu estava colocando a tag title no lugar errado:

 

<div id="gallery">
      <?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank' title='$legenda'><img src='$filename' width='80' height='53'></a> ";
}
?>
     </div>

 

O único problema é que agora aparece em todas as fotos a legenda da primeira foto

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um array com as legendas

 

e corra nesse array dentro do foreach..

como você sabe no banco de dados, q certa legenda pertence a tal foto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um array com as legendas

 

e corra nesse array dentro do foreach..

como você sabe no banco de dados, q certa legenda pertence a tal foto ?

 

Willian, no banco de dados há três áreas: id, foto (onde faço upload do arquivo) e legenda.

 

Isso só não é suficiente ou é preciso fazer mesmo o array?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.. no campo `foto` você guarda o nome da imagem ?

 

é que você tá buscando diretamente na pasta ali com o glob()... ai fiquei confuso.

 

Se for, oque você tem já é suficiente.. dá pra descartar o glob() e fazer tudo direto do bd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian, se eu tiro o glob:

 

<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
foreach ("../images/fotos/esporte/*.jpg") as $filename {
  echo "<a href='$filename' target='_blank' title='$legenda'><img src='$filename' width='80' height='53'></a> ";
}
?>

</div>

 

Aparece o erro:

 

Parse error: syntax error, unexpected ')' in /home/storage/2/ed/05/sar10/public_html/social/infra_estrutura_esportiva.php on line 226

Compartilhar este post


Link para o post
Compartilhar em outros sites

so você buscar na variavel que ta o fetch array da query do jeito que eu te falei

 

<div id="gallery">
<?php
$query = mysql_query("select * from tabela");
while($var = mysql_fetch_array($query)){ // query que faz o select
echo '<img src="'.$var['foto'].'" />';
}
?>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php require_once('../Connections/db_SAR10.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

mysql_select_db($database_db_SAR10, $db_SAR10);
$query_rsBanners = "SELECT * FROM banners ORDER BY id DESC";
$rsBanners = mysql_query($query_rsBanners, $db_SAR10) or die(mysql_error());
$row_rsBanners = mysql_fetch_assoc($rsBanners);
$totalRows_rsBanners = mysql_num_rows($rsBanners);

mysql_select_db($database_db_SAR10, $db_SAR10);
$query_rsEsporte = "SELECT legenda FROM esporte";
$rsEsporte = mysql_query($query_rsEsporte, $db_SAR10) or die(mysql_error());
$row_rsEsporte = mysql_fetch_assoc($rsEsporte);
$totalRows_rsEsporte = mysql_num_rows($rsEsporte);
?>
<!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"><!-- InstanceBegin template="/Templates/SAR10_basic.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="residencial 10, alphaville, santana de parnaíba, são paulo, residencial alphaville 10, alpha 10, sociedade alphaville residencial 10, condomínio" />
<meta name="description" content="Sociedade Alphaville Residencial 10: Av. Bom Pastor, 1000 - Alphaville - Santana de Parnaíba / SP - 06540-001 | 
(11) 2889-6889" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Sociedade Alphaville Residencial 10</title>
<!-- Arquivos utilizados pelo jQuery lightBox plugin -->
   <script type="text/javascript" src="../js/jquery.js"></script>
   <script type="text/javascript" src="../js/jquery.lightbox-0.5.js"></script>
   <link rel="stylesheet" type="text/css" href="../css/jquery.lightbox-0.5.css" media="screen" />
   <!-- / fim dos arquivos utilizados pelo jQuery lightBox plugin -->

   <!-- Ativando o jQuery lightBox plugin -->
   <script type="text/javascript">
   $(function() {
       $('#gallery a').lightBox();
   });
   </script>
  	<style type="text/css">
/* jQuery lightBox plugin - Gallery style */
#gallery {
background-color: #FFFFFF;
width: 610px;
padding-top: 10px;
padding-right: 0px;
padding-bottom: 5px;
padding-left: 0px;
}
#gallery ul { list-style: none; }
#gallery ul li { display: inline; }
#gallery ul img {
	border: 5px solid #3e3e3e;
	border-width: 5px 5px 20px;
}
#gallery ul a:hover img {
	border: 5px solid #fff;
	border-width: 5px 5px 20px;
	color: #fff;
}
#gallery ul a:hover { color: #fff; }
img {
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
}
   </style>

<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="../css/structure.css" rel="stylesheet" type="text/css" />
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
<link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<script language = "javascript" type="text/javascript">
	today = new Date
	function printYear()
	{
	document.write(today.getFullYear())
	}
</script>
<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-20888145-1']);
 _gaq.push(['_trackPageview']);

 (function() {
   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

</script>
</head>

<body>

<div id="header" align="center">
</div>

<div id="menu" align="center">
<ul id="MenuBar1" class="MenuBarHorizontal">
   <li><a class="MenuBarItemSubmenu" href="#">Administração</a>
     <ul>
<li><a href="../administracao/juridico.php">Assuntos jurídicos</a></li>
<li><a href="../administracao/atas.php">Atas das Assembléias Gerais</a></li>
<li><a href="../administracao/circulares.php">Circulares</a></li>
<li><a href="../administracao/comissoes.php">Comissões Especiais</a></li>
<li><a href="../administracao/conselho_deliberativo.php">Conselho Deliberativo</a></li>
<li><a href="../administracao/conselho_fiscal.php">Conselho Fiscal</a></li>
<li><a href="../administracao/diretoria.php">Diretoria Executiva</a></li>
<li><a href="../administracao/estatuto.php">Estatuto Social da SAR10</a></li>
<li><a href="../administracao/indicadores.php">Indicadores de performance</a></li>
<li><a href="../administracao/novo_regulamento.php">Novo Regulamento Interno da SAR10 - Consulta Pública</a></li>
<li><a href="../administracao/organograma.php">Organograma</a></li>
<li><a href="../administracao/outros.php">Outros Administrativos</a></li>
<li><a href="../administracao/regulamento_restricoes.php">Regulamento das Restrições da SAR10</a></li>
<li><a href="../administracao/regulamento.php">Regulamento Interno atual da SAR10</a></li>
     </ul>
   </li>
<li><a href="#" class="MenuBarItemSubmenu">Financeiro</a>
     <ul>
<li><a href="../financeiro/alteracao.php">Alteração de endereço de cobrança</a></li>
<li><a href="../financeiro/balancos.php">Balanço / Resultado anual</a></li>
<li><a href="../financeiro/carta.php">Carta de quitação</a></li>
<li><a href="../financeiro/inadimplencia.php">Inadimplência</a></li>
<li><a href="../financeiro/indicadores.php">Indicadores de performance</a></li>
<li><a href="../financeiro/orcamento.php">Orçamento x Realidade das contas</a></li>
<li><a href="../financeiro/outros.php">Outros Financeiros</a></li>
<li><a href="../financeiro/boleto.php">Solicitação de boleto</a></li>
     </ul>
   </li>
   <li><a class="MenuBarItemSubmenu" href="#">Manutenção</a>
     <ul>
<li><a href="../manutencao/areas.php">Áreas verdes</a></li>
<li><a href="../manutencao/imoveis.php">Imóveis</a></li>
<li><a href="../manutencao/indicadores.php">Indicadores de performance</a></li>
<li><a href="../manutencao/outros.php">Outros Manutenção</a></li>
<li><a href="../manutencao/vias.php">Vias públicas</a></li>
<li><a href="../manutencao/viaturas.php">Viaturas</a></li>
     </ul>
   </li>
<li><a href="#" class="MenuBarItemSubmenu">Segurança</a>
 <ul>
<li><a href="../seguranca/animais.php">Animais</a></li>
<li><a href="../seguranca/cartao.php">Cartão de acesso</a></li>
<li><a href="../seguranca/indicadores.php">Indicadores de performance</a></li>
<li><a href="../seguranca/outros.php">Outros Segurança</a></li>
<li><a href="../seguranca/procedimentos.php">Procedimentos de segurança</a></li>
<li><a href="../seguranca/transito.php">Trânsito interno</a></li>
 </ul>
</li>
   <li><a href="#" class="MenuBarItemSubmenu">Social</a>
     <ul>
<li><a href="eventos.php">Eventos</a></li>
<li><a href="fotos.php">Fotos</a></li>
<li><a href="horarios.php">Grade de horários de treinos, competições e aulas</a></li>
<li><a href="indicadores.php">Indicadores de performance</a></li>
<li><a href="infra_estrutura_esportiva.php">Infra-estrutura esportiva</a></li>
<li><a href="novidades.php">Notícias</a></li>
<li><a href="outros.php">Outros Social</a></li>
<li><a href="informativo.php">SAR10 Express</a></li>
<li><a href="jornal.php">SAR10 News</a></li>
     </ul>
   </li>
   <li><a href="#" class="MenuBarItemSubmenu">Contato</a>
     <ul>
       <li><a href="../contato/fale.php">Fale com a gente</a></li>
       <li><a href="../contato/mapa.php">Mapa do Residencial</a></li>
       <li><a href="../contato/sites.php">Sites úteis</a></li>
       <li><a href="../contato/telefones.php">Telefones úteis</a></li>
     </ul>
   </li>
 </ul>
</div>

<br class="clearfloat" />
<div id="content">

<div id="left_content" align="center">
   <!-- InstanceBeginEditable name="banner" -->
<?php do { ?>
  <a href="<?php echo $row_rsBanners['link']; ?>"><img src="../../images/banners/<?php echo $row_rsBanners['img']; ?>" border="0" class="banner" /></a>
  <?php } while ($row_rsBanners = mysql_fetch_assoc($rsBanners)); ?> 
<!-- InstanceEndEditable -->


</div>

   <div id="center_content2" align="center">
     <h2><!-- InstanceBeginEditable name="title" -->Infra-estrutura esportiva<!-- InstanceEndEditable --></h2> 
  <!-- InstanceBeginEditable name="content1" -->
<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank' title='$legenda'><img src='$filename' width='80' height='53'></a> ";
}
?>

</div>




  <!-- InstanceEndEditable -->
   </div>

</div>

<br class="clearfloat" />

<div id="footer" align="center">
<div id="footer_left"> 
<a href="../home/index.php">
<h1 class="pagina_inicial"><img src="../images/nav/home.png" width="21" height="23" border="0" align="left" />  Página <br />
   inicial</h1></a>
</div>
<h1>
Sociedade Alphaville Residencial 10 <br />
Av. Bom Pastor, 1000 - Alphaville - Santana de Parnaíba / SP | 06540-001<br />
11 - 4153-3497
</h1> 
</div>

<div id="copyright"><br />
© <script LANGUAGE="JAVASCRIPT">printYear()</SCRIPT>. Sociedade Alphaville Residencial 10. Todos os direitos reservados | Desenvolvido por <a href="http://www.mvgweb.com.br" target="_blank">MVG</a>.
</div>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($rsBanners);

mysql_free_result($rsEsporte);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank' title='$legenda'><img src='$filename' width='80' height='53'></a> ";
}
?>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim

 

   <div id="center_content2" align="center">
     <h2><!-- InstanceBeginEditable name="title" -->Infra-estrutura esportiva<!-- InstanceEndEditable --></h2> 
         <!-- InstanceBeginEditable name="content1" -->
<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
$query = mysql_query('SELECT legenda FROM esporte');
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
 while($legendaImg = mysql_fetch_array($query)){
  echo "<a href='$filename' target='_blank' title='".$legendaImg['legenda']."'><img src='$filename' width='80' height='53'></a> ";
  }
}
?>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim

 

   <div id="center_content2" align="center">
     <h2><!-- InstanceBeginEditable name="title" -->Infra-estrutura esportiva<!-- InstanceEndEditable --></h2> 
         <!-- InstanceBeginEditable name="content1" -->
<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
$query = mysql_query('SELECT legenda FROM esporte');
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
 while($legendaImg = mysql_fetch_array($query)){
  echo "<a href='$filename' target='_blank' title='".$legendaImg['legenda']."'><img src='$filename' width='80' height='53'></a> ";
  }
}
?>

</div>

 

Andrey. Você conseguiu resolver o problema da legenda. Agora são as fotos que estão todas iguais. Dê uma olhada:

 

Clique aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você disse que grava o ptt dessas fotos no banco ne ?

 

ptt = path

path = caminho ..

 

se sim , você pega aonde elas estão localizadas pelo while mesmo ..

 

tente o while por fora ..

   <div id="center_content2" align="center">
     <h2><!-- InstanceBeginEditable name="title" -->Infra-estrutura esportiva<!-- InstanceEndEditable --></h2> 
         <!-- InstanceBeginEditable name="content1" -->
<div id="gallery">
<?php $legenda = $row_rsEsporte['legenda']; ?>
<?php
$query = mysql_query('SELECT legenda FROM esporte');
 while($legendaImg = mysql_fetch_array($query)){
foreach (glob("../images/fotos/esporte/*.jpg") as $filename) {
  echo "<a href='$filename' target='_blank' title='".$legendaImg['legenda']."'><img src='$filename' width='80' height='53'></a> ";
  }
}
?>

</div>

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.