Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, tenho uma atividade onde preciso listar os Estados brasileiros, um abaixo do outro.
Cada estado irá ser um link, que, quando clicado, deve exibir suas respectivas cidades abaixo do nome do Estado clicado!
Do jeito que está abaixo, eu consigo listar os estados, mas quando eu clico em qualquer um dos links ele me traz a primeira cidade de Alagoas(que é meu primeiro estado na tabela) para qualquer estado que eu clique.
<script>
function Oculta(estado){
if (document.getElementById(estado).style.display=='none'){
document.getElementById(estado).style.display='block';
//alert(estado);
}else{
document.getElementById(estado).style.display='none';
}
}
</script>
<?php
include 'dbconexaooracle.php';
$sql = oci_parse($ora_conexao, "SELECT nome_estado from estados");
$rs = oci_execute($sql);
while ($row = oci_fetch_array($sql, OCI_BOTH)) {
$nome_estado = $row[0];
?>
<a href="javascript:Oculta('<?php print $nome_estado ?>');" style="text-decoration: none;" name="estado" ><?php echo $nome_estado ?><br></a>
<?php
$sql2 = oci_parse($ora_conexao, "SELECT nome_cidade from cidades");
$rs2 = oci_execute($sql2);
while ($row = oci_fetch_array($sql2, OCI_BOTH)) {
$nome_cidade = $row[0];
?>
<div id="<?php print $nome_estado ?>" style="display: none;">
<?php echo $nome_cidades?><br>
</div>
<?php
}
}
?>Adicione o atributo id="estado" no link;
complementando:
portanto se eventualmente houver algum problema
nesses códigos, vc deverá verificar à parte, ok?
Ainda não consegui, a situação atual é a seguinte...
Eu listo os estados corretamente, quando eu clico em um estado, eu consigo dar um alert nele...e em seguida listo as cidades abaixo de cada estado clicado...
Eu precisava de algum modo pegar o nome desse estado clicado e jogar numa variavel php...só que sem submeter a pagina, essa variavel se encaixaria no segundo SQL onde está o nome 'fixo' Bahia.
Se alguem tiver uma ideia...eu agradeço
<script>
function Oculta(estado){
if (document.getElementById(estado).style.display=='none'){
document.getElementById(estado).style.display='block';
//alert(estado);
}else{
document.getElementById(estado).style.display='none';
}
}
</script>
<?php
include 'dbconexaooracle.php';
//SQL ESTADOS
$sql = oci_parse($ora_conexao, "SELECT e007ufs.nomufs
FROM e085cli e085cli
JOIN e085hcl e085hcl ON ( e085cli.codcli = e085hcl.codcli )
JOIN e007ufs e007ufs ON ( e085cli.sigufs = e007ufs.sigufs)
JOIN e140nfv e140nfv ON ( e085hcl.codcli = e140nfv.codcli AND e085hcl.codemp = E140Nfv.codemp)
JOIN e140ipv e140ipv ON ( e140nfv.codemp = e140ipv.codemp AND E140Nfv.numnfv = E140IPv.numnfv )
JOIN e075pro e075pro ON ( e075pro.codemp = e140ipv.codemp AND e075pro.codpro = e140ipv.codpro )
WHERE e075pro.codmar = 'ORNET'
AND TO_DATE(SYSDATE,'DD/MM/YYYY') - TO_DATE(e140nfv.datemi,'DD/MM/YYYY') <= 30
GROUP BY e007ufs.nomufs
HAVING Sum(e140ipv.qtdfat) > 7
ORDER BY e007ufs.nomufs");
$rs = oci_execute($sql);
//LISTA OS ESTADOS
while ($row = oci_fetch_array($sql, OCI_BOTH)) {
$nomufs = $row[0];
?>
<a href="javascript:Oculta('<?php print $nomufs ?>');" style="text-decoration: none;" name="estado" ><?php echo $nomufs ?><br></a>
<?php
//SQL CIDADES
$sql2 = oci_parse($ora_conexao, "SELECT e085cli.codcli, e085cli.apecli, e085cli.endcli, e085cli.foncli, e085cli.cidcob, e007ufs.nomufs
FROM e085cli e085cli
JOIN e085hcl e085hcl ON ( e085cli.codcli = e085hcl.codcli )
JOIN e007ufs e007ufs ON ( e085cli.sigufs = e007ufs.sigufs)
JOIN e140nfv e140nfv ON ( e085hcl.codcli = e140nfv.codcli AND e085hcl.codemp = E140Nfv.codemp )
JOIN e140ipv e140ipv ON ( e140nfv.codemp = e140ipv.codemp AND E140Nfv.numnfv = E140IPv.numnfv )
JOIN e075pro e075pro ON ( e075pro.codemp = e140ipv.codemp AND e075pro.codpro = e140ipv.codpro )
WHERE e075pro.codmar = 'ORNET'
AND TO_DATE(SYSDATE,'DD/MM/YYYY') - TO_DATE(e140nfv.datemi,'DD/MM/YYYY') <= 30
AND e007ufs.nomufs = 'Bahia'
GROUP BY e085cli.codcli, e085cli.apecli, e085cli.endcli, e085cli.foncli, e085cli.cidcob, e007ufs.nomufs
HAVING Sum(e140ipv.qtdfat) > 7
ORDER BY e007ufs.nomufs");
$rs2 = oci_execute($sql2);
//LISTA AS CIDADES
?>
<div id="<?php print $nomufs ?>" style="display: none;">
<?php
while ($row = oci_fetch_array($sql2, OCI_BOTH)) {
$apecli = $row[1];
echo $apecli . "<br>";
}
?>
</div>
<?php
}
?>
ex:
1. a variavel a ser passada (supondo q a coluna da tabela "cidades" seja "id_estado"):
$estado_selecionado=$_GET['id_estado'];
2. SQL:
(lógico q vc terá q ter na tabela cidades ou o id ou o nome dos estados, ok?)
3. exibição dos registros:
em sintese seria isso, qqer coisa retorne.
OBS: atenção: na consulta vc usou "nome_cidade" e no "echo" está "nome_cidadeS";
cuidado c/ isso..