Ir para conteúdo

POWERED BY:

Arquivado

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

ticon

Problemas para ocultar/aparecer div com dados de um BD

Recommended Posts

Help galera!!!

 

Estou com um problema no código abaixo.

 

Quando vou ocultar a div de um registro, oculta a div certa. Mas quando vou clicar para reaparecer aparece o registro errado. Tem como resolver isso aproveitando esse codigo? Para entender melhor o que estou falando segue o endereco com a página.

 

http://www.pactorh.com.br/empregos/dados2.php

 

valeu pela ajuda!!!!!

 

<?php
$conexao = mysql_connect(" ", " ", " ") or die ("Erro na conexão ao banco de dados.");

$db = mysql_select_db(" ") or die ("Erro ao selecionar a base de dados.");

$sql = "SELECT * FROM salvos";

$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta"); if (@mysql_num_rows($resultado) == 0)  die('Nenhum registro encontrado');

?>
<script type="text/javascript">
function displaylayer(nameDiv,personal){
	nameDiv = document.getElementById(nameDiv);
	if((nameDiv.style.display == 'none') || (personal.toLowerCase()=='on')){
		nameDiv.style.display='';
	}else{
		nameDiv.style.display='none';
	}
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cadastrados - CTPOÇOS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#D0D0D0" link="#000000" vlink="#000000" alink="#000000">
<p align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><BR>
</font></p>
<p align="left">
  <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  <?php
while ($linha=mysql_fetch_array($resultado))
{
?>
  </font></p>
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><a href="#" onclick="displaylayer('conteudo','');"><? echo $linha['sitetitle']; ?></a> (<? echo $linha['quantidade']; ?>)</strong></font></p>
<div id="conteudo" style="display: none;">
<table width="100%" border="0">
  <tr>
	<td width="156"><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Tipo:</font></strong></font></div></td>
	<td width="1225"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['tipo']; ?></font></td>
  </tr>
  <tr>
	<td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Grau de escolaridade:</font></strong></font></div></td>
	<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['grau_escola']; ?></font></td>
  </tr>
  <tr>
	<td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Perfil da vaga:</font></strong></font></div></td>
	<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['perfil']; ?></font></td>
  </tr>
</table>
</div>
<p>
  <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  <?php
}
?>
  </font></p>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

IDs devem ser elementos únicos na página.

você colocou id="conteudo", para todo mundo, isso está errado. Faça algo sequencial para ser mais simples, como:

 

conteudo1, conteudo2, conteudo3... passando o parâmetro certo na função, vai funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

IDs devem ser elementos únicos na página.

você colocou id="conteudo", para todo mundo, isso está errado. Faça algo sequencial para ser mais simples, como:

 

conteudo1, conteudo2, conteudo3... passando o parâmetro certo na função, vai funcionar.

 

 

 

oi bruno! isso eu modifico na funcao? coloquei um contador na parte em php..mas nao deu certo....c você poder me ajudar agradeco de mais....abraços

 

<?php
$cont=0;
while ($linha=mysql_fetch_array($resultado))
{
  $cont=$cont+1;
?>
  </font></p>
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><a href="#" onClick="java script: exibe('<? $cont ?>');"><? echo $linha['sitetitle']; ?></a> (<? echo $linha['quantidade']; ?>)</strong></font></p>
<div id="<? $cont ?>" style="display: none;">
<table width="100%" border="0">
  <tr>
	<td width="156"><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Tipo:</font></strong></font></div></td>
	<td width="1225"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['tipo']; ?></font></td>
  </tr>
  <tr>
	<td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Grau de escolaridade:</font></strong></font></div></td>
	<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['grau_escola']; ?></font></td>
  </tr>
  <tr>
	<td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Perfil da vaga:</font></strong></font></div></td>
	<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['perfil']; ?></font></td>
  </tr>
</table>
</div>
<p>
  <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  <?php

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz rsss

ignora entaum meu post, você ja resolveu rsss

 

 

 

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz rsss

ignora entaum meu post, você ja resolveu rsss

 

 

 

Absss

 

mas no casa desse jeito nao da certo...pq estou pegando os dados de uma base de dados mysql.......coloquei um contador para ir atualizando o nome da div....ai de certo..mas valewww pela ajuda

 

 

abraxxxxx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é aconselhável você usar apenas números para identificadores IDs em um documento.

Eu sugiro que você faça o seguinte:

onClick="java script: exibe('<?php print 'conteudo'.$cont ?>');">
, ou seja, concatene alguma string ao contador.. para não ficar somente o: id="1", id="2"..

Mas é isso ai, você entendeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rsss

 

To ligado, eu não tinha visto seu post, eu ia postar um codigo na integra só para você entender o pq naum funcionava, o pq da necessidade de por id's diferentes e tals. Aee você postou a sua solução e eu não tinha visto, aee editei meu post.

A sua solução ta certinha amigo :D

 

Abss pra ti e sucesso aee no trabalho rapazz..

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu galera!! depois vou seguir seu conselho bruno dos identificadores......soh sobrar um tempinho aqui que estou na correria....hehe

 

agora surgiu outra duvida.....quando clico em um titulo queria que fecha-se a outra div..que fica-se apenas a selecionado.....c acessar o endereco abaixo vai entender o que estou falando:

 

http://www.pactorh.com.br/empregos/dados4.php

 

posso mudar isso soh na funcao?

 

funcão:

 

<script type="text/javascript">
function exibe(id) {
	if(document.getElementById(id).style.display=="none") 
	{
		document.getElementById(id).style.display = "inline";
	}
	else {
		document.getElementById(id).style.display = "none";
	}
}
</script>

chamada:

 

<a href="#" onClick="java script: exibe('<? echo $cont ?>');">

codigo inteiro:

 

<?php
$conexao = mysql_connect(" ", " ", " ") or die ("Erro na conexão ao banco de dados.");

$db = mysql_select_db(" ") or die ("Erro ao selecionar a base de dados.");

$sql = "SELECT * FROM salvos order by sitetitle";

$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta"); if (@mysql_num_rows($resultado) == 0)  die('Nenhum registro encontrado');

?>
<script type="text/javascript">
function exibe(id) {
	if(document.getElementById(id).style.display=="none") 
	{
		document.getElementById(id).style.display = "inline";
	}
	else {
		document.getElementById(id).style.display = "none";
	}
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
#apDiv1 {
	position:absolute;
	width:200px;
	height:33px;
	z-index:1;
	left: 30px;
	top: 5px;
}
a:link {
	color: #74000A;
}
a:visited {
	color: #74000A;
}
a:hover {
	color: #74000A;
}
a:active {
	color: #74000A;
}
.style1 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;
}
a {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
}
-->
</style>
</head>
<body bgcolor="#D0D0D0">
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></p>
<div id="apDiv1"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Vagas disponíveis</font><font size="1" face="Verdana, Arial, Helvetica, sans-serif"></font></strong></div>
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <BR>
</font></p>
<p align="left">
  <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  <?php
$cont=0;
while ($linha=mysql_fetch_array($resultado))
{
  $cont=$cont+1;
?>
  </font></p>
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><a href="#" onClick="java script: exibe('<? echo $cont ?>');"><? echo $linha['sitetitle']; ?></a> (<? echo $linha['quantidade']; ?>)</strong></font></p>
<div id="<? echo $cont ?>" style="display: None;">
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
	<td>
	  <table width="100%" border="0">
		<tr>
		  <td width="156"><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Tipo:</font></strong></font></div></td>
		  <td width="1225"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['tipo']; ?></font></td>
		</tr>
		<tr>
		  <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Grau de escolaridade:</font></strong></font></div></td>
		  <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['grau_escola']; ?></font></td>
		</tr>
		<tr>
		  <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#000000">Perfil da vaga:</font></strong></font></div></td>
		  <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $linha['perfil']; ?></font></td>
		</tr>
		<tr>
		  <td> </td>
		  <td><div align="right"><span class="style1"><a href="http://www.pactorh.com.br/curriculos/member_login.php">Canditatar-se a essa vaga</a></span></div></td>
		</tr>
	  </table>
   </td>
  </tr>
</table> </div>
 <?php

}

?>
  </font></p>
</body>

</html>

 

c alguem poder me ajudar...agradeco!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você fizer o seguinte já resolve:

<script type="text/javascript">
function exibe(id) {
	if(document.getElementById(id).style.display=="none") {
		for(var i=1; i <= 7; i++){
		document.getElementById(i).style.display = 'none';
		}
		document.getElementById(id).style.display = "inline";
	}
	else {
		document.getElementById(id).style.display = "none";
	}
}
</script>
Tem um loop for, percorrendo 7 elementos, e setando display none, em todos eles.

Como você está trazendo dados do banco, essa não é a melhor alternativa, mas a idéia geral é essa. Dar none em todos, e depois mostrar oque você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas nesse código ai, você nem trocou a função javascript..

Coloca essa com o loop no lugar da outra...

Compartilhar este post


Link para o post
Compartilhar em outros sites

$conta = mysql_query('SELECT COUNT(*) FROM salvos');

?>
<script type="text/javascript">
function exibe(id) {
	if(document.getElementById(id).style.display=="none") {
		for(var i=1; i <= '<? echo $conta ?>'; i++){
		document.getElementById(i).style.display = 'none';
		}
		document.getElementById(id).style.display = "inline";
	}
	else {
		document.getElementById(id).style.display = "none";
	}
}
</script>

 

voce acha q da certo isso? toi testando aqui mas nao funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um moderador da área vai editar.

Melhore a função que eu fiz... faça o loop percorrer todos os nós filhos, pois do jeito que fiz como exemplo, só vai funcionar para 7 ou menos DIVs.

 

Não é uma string, é um number mesmo. Tira as aspas.

for(var i=1; i <= <? echo $conta ?> i++){
Esse jeito funcionaria, mas o mais correto, seria percorrer os childNodes do elemento pai... caçando todas as DIVs... dá uma estudada em JS ai, que você implementa isso...

 

fiz esse loop basicão só para você pegar a lógica da coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<code><script type="text/javascript">

function exibe(id) {

if(document.getElementById(id).style.display=="none") {

for(var i=1; i <= '<? echo mysql_result($conta, 0) ?>'; i++){

document.getElementById(i).style.display = 'none';

}

document.getElementById(id).style.display = "inline";

}

else {

document.getElementById(id).style.display = "none";

}

}

</script></code>

 

assim deu certo....hehe.....depois dou uma olhada sim...e q o tempo ta f*** mesmo......valeu mesmo

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.