Fiz um post perguntando como exibir os dados via xml + ajax, o pessoal me deu uma força e me ensionou como exibir via html, fiz o teste e funcionou, porém ainda estou com um problema! quando eu clico no link os dados vem logo abaixo, porém se eu clicar novamente ele duplica os dados e eu clicar novamente e for clicar ele vai repetindo os dados na tela, eu preciso que funcione da seguinte forma, clicou uma vez no link mostra os dados se clicar novamente esconde os dados, então fica assim todo o tempo um clique mostas os dados outro clique esconde, alguém pode me explicar como fazer isso?
olha como esta o meu código:
<html>
<head>
<script language="javascript" src="VerificaBrownser.js"></script>
<script language="javascript" src="funcao.js"></script>
</head>
<body>
<?
include "conecta.php";
$busca = mysql_query("select * from estados order by DSC_ESTADO");
$linha = mysql_num_rows($busca);
?>
<h1>AJAX + PHP</h1>
Carregando cidades sem dar refresh na página.
<br><br>
<ul name="listCidades" id="lixo">
<?
for($i=0; $i<$linha; $i++)
{
$reg = mysql_fetch_row($busca);
?>
<li id="liEstado_<?=$reg[0]?>"><a href="#" onclick="loadCities('<?=$reg[0]?>')"><? echo $reg[1]; ?></a></li><br>
<?
}
?>
</ul>
</body>
</html>
function loadCities(valor)
{
if(ajax)
{
//Pega o li do estado clicado
var liEstado = document.getElementById('liEstado_'+valor);
ajax.open("POST", "cidades.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{
if(ajax.readyState == 1)
{
idOpcao.innerHTML = "Carregando...!";
}
if(ajax.readyState == 4 )
{
if(ajax.responseText)
{
//Acrescenta o retorno nesse li
liEstado.innerHTML = liEstado.innerHTML + ajax.responseText;
}
}
}
//passa o código do estado escolhido
var params = "estado="+valor;
ajax.send(params);
}
}
<?
include "conecta.php";
$estado = $_POST["estado"];
$resultado = mysql_query("select * from cidades where COD_ESTADO='$estado' order by DSC_CIDADE");
$linha = mysql_num_rows($resultado);
if($linha>0)
{
$dados = "";
for($i=0; $i<$linha; $i++)
{
$reg = mysql_fetch_row($resultado);
$codigo = $reg[0];
$descricao = $reg[1];
$dados .= $descricao."<br>";
}
//CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");
}
//PRINTA O RESULTADO
echo $dados;
?>
Pergunta
alexandremanowar
E ae pessoal
Fiz um post perguntando como exibir os dados via xml + ajax, o pessoal me deu uma força e me ensionou como exibir via html, fiz o teste e funcionou, porém ainda estou com um problema! quando eu clico no link os dados vem logo abaixo, porém se eu clicar novamente ele duplica os dados e eu clicar novamente e for clicar ele vai repetindo os dados na tela, eu preciso que funcione da seguinte forma, clicou uma vez no link mostra os dados se clicar novamente esconde os dados, então fica assim todo o tempo um clique mostas os dados outro clique esconde, alguém pode me explicar como fazer isso?
olha como esta o meu código:
Alguém pode me ajudar? Valeu
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.