Executar ação ao selecionar item do combo.
Olá!
estou fazendo um combo de cidades, eu queria quando selecionar uma cidade, ela me traz o resultado do banco de dados daquela cidade
mais eu tentei de tudo n estou conseguindo será q dava pra vc me da uma ajuda .
agradeço!
Marcos Roberto
segue meu código.
<form action="listarpesquisa.php" method="post" enctype="multipart/form-data">
<select name="categorias">
<option value="0" selected="selected">Selecione uma delegacia</option>
<a href="listarpesquisa.php?id=<?php echo $busca ['id_cat']; ?>"</a>
<?php
$selCats = "SELECT * FROM cat_delegacia";
$qrCats = mysql_query($selCats);
while($linhaCat = mysql_fetch_array($qrCats)){
?>
<option value="<?php echo $linhaCat['id_delegacia'];?>"><?php echo $linhaCat['nome_delegacia']; ?></option>
<?php } ?>
</select>
<!--<input type="text" name="pesquisa" size="30"/>-->
<input type="hidden" name="acao" value="buscar"/>
<input type="submit" value="Buscar"/>
</form>
<?php if(isset($_POST['acao']) && $_POST['acao'] == 'buscar'){
$id_delegacia = $_POST['nome_delegacia'];
$pesquisa = strip_tags(trim($_POST['pesquisa']));
$linhaBusca = $_GET["id_delegacia "];
$busca = ("SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts
WHERE id=id_cat ORDER BY id DESC ");
$qrBusca = mysql_query($busca);
if(mysql_num_rows($qrBusca) == '0'){
echo 'Não foram encontrados nenhum registro!';
}else{
while($linhaBusca = mysql_fetch_assoc($qrBusca)){
?>
<h1><?php echo $linhaBusca['titulo'];?></h1>
<p><?php echo $linhaBusca['conteudo'];?></p>
<p><?php echo $linhaBusca['diretor'];?></p>
<p><?php echo $linhaBusca['coordenadoria'];?>
</p><p><?php echo $linhaBusca['endereco'];?></p>
<?php
}
}
}
?>
estou fazendo um combo de cidades, eu queria quando selecionar uma cidade, ela me traz o resultado do banco de dados daquela cidade
mais eu tentei de tudo n estou conseguindo será q dava pra vc me da uma ajuda .
agradeço!
Marcos Roberto
segue meu código.
<form action="listarpesquisa.php" method="post" enctype="multipart/form-data">
<select name="categorias">
<option value="0" selected="selected">Selecione uma delegacia</option>
<a href="listarpesquisa.php?id=<?php echo $busca ['id_cat']; ?>"</a>
<?php
$selCats = "SELECT * FROM cat_delegacia";
$qrCats = mysql_query($selCats);
while($linhaCat = mysql_fetch_array($qrCats)){
?>
<option value="<?php echo $linhaCat['id_delegacia'];?>"><?php echo $linhaCat['nome_delegacia']; ?></option>
<?php } ?>
</select>
<!--<input type="text" name="pesquisa" size="30"/>-->
<input type="hidden" name="acao" value="buscar"/>
<input type="submit" value="Buscar"/>
</form>
<?php if(isset($_POST['acao']) && $_POST['acao'] == 'buscar'){
$id_delegacia = $_POST['nome_delegacia'];
$pesquisa = strip_tags(trim($_POST['pesquisa']));
$linhaBusca = $_GET["id_delegacia "];
$busca = ("SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts
WHERE id=id_cat ORDER BY id DESC ");
$qrBusca = mysql_query($busca);
if(mysql_num_rows($qrBusca) == '0'){
echo 'Não foram encontrados nenhum registro!';
}else{
while($linhaBusca = mysql_fetch_assoc($qrBusca)){
?>
<h1><?php echo $linhaBusca['titulo'];?></h1>
<p><?php echo $linhaBusca['conteudo'];?></p>
<p><?php echo $linhaBusca['diretor'];?></p>
<p><?php echo $linhaBusca['coordenadoria'];?>
</p><p><?php echo $linhaBusca['endereco'];?></p>
<?php
}
}
}
?>
Marcos Roberto
Curtidas 0
Melhor post
William
20/07/2015
Marcos para começar, por gentileza utilize a tag code quando for postar trechos de código fonte:
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20150720-202225.png[/img]
Quanto ao seu código, já postei diversas vezes aqui, não é recomendado utilizar a extensão mysql_ pois a mesma já está marcada como deprecate, recomendo a extensão PDO no meu blog possui muito material sobre isso devwilliam.com.br
O seu código estava meio bagunçado com variáveis perdidas, + ou - como eu faria:
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20150720-202225.png[/img]
Quanto ao seu código, já postei diversas vezes aqui, não é recomendado utilizar a extensão mysql_ pois a mesma já está marcada como deprecate, recomendo a extensão PDO no meu blog possui muito material sobre isso devwilliam.com.br
O seu código estava meio bagunçado com variáveis perdidas, + ou - como eu faria:
<form action="listarpesquisa.php" method="post"> <select name="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> </select> <input type="hidden" name="acao" value="buscar"/> <input type="submit" value="Buscar"/> </form> <?php if(isset($_POST['acao']) && $_POST['acao'] == 'buscar'): $id_delegacia = $_POST['delegacia']; $busca ='SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts '; $busca .= 'FROM site_posts WHERE id=:parametro ORDER BY id DESC'; $stm = $pdo->prepare($busca); $stm->bindValue(':parametro', $id_delegacia); $stm->execute(); $posts = $stm->fetchAll(PDO::FETCH_OBJ); if(empty($posts)): echo 'Não foram encontrados nenhum registro!'; else: foreach($posts as $post): ?> <h1><?php echo $post->titulo;?></h1> <p><?php echo $post->conteudo;?></p> <p><?php echo $post->diretor;?></p> <p><?php echo $post->coordenadoria;?> </p><p><?php echo $post->endereco;?></p> <?php endif; endif; ?>
GOSTEI 1
Mais Respostas
Fernando C
20/07/2015
só complementando, algumas observações, "data venia":
1. essa linha:
2. também é desnecessário o botão oculto,
use o nome dele no outro botão visivel, normal:
aproveitando, eu retiraria essa parte:
sugiro q deixe apenas assim:
pq esse botão sempre terá esse valor
3. na SQL: há uma repetição do trecho "FROM site_posts"; verifique.
4. se a coluna "id" for chave primária, não há sentido
a ordenação ("order by..."), pq só deverá haver retorno de um registro (ou nenhum).
e reforço a recomendação de usar PDO e também de evitar linhas desnecessárias, fica mais facil "debugar", ok?
1. essa linha:
<a href="listarpesquisa.php?id=<?php echo $busca ['id_cat']; ?>"</a>
é desnecessária.2. também é desnecessário o botão oculto,
use o nome dele no outro botão visivel, normal:
<input type="submit" name="acao" value="Buscar"/>
aproveitando, eu retiraria essa parte:
&& $_POST['acao'] == 'buscar'
sugiro q deixe apenas assim:
if(isset($_POST['acao']))
pq esse botão sempre terá esse valor
3. na SQL: há uma repetição do trecho "FROM site_posts"; verifique.
4. se a coluna "id" for chave primária, não há sentido
a ordenação ("order by..."), pq só deverá haver retorno de um registro (ou nenhum).
e reforço a recomendação de usar PDO e também de evitar linhas desnecessárias, fica mais facil "debugar", ok?
GOSTEI 1
Marcos Roberto
20/07/2015
Valeu Willian e Fernando pela ajuda mais ainda n deu certo, está dando erro no final
endifi, ainda n consegui trazer os resultados do banco de dados oq pode ser esse erro?
endifi, ainda n consegui trazer os resultados do banco de dados oq pode ser esse erro?
<form action="listarpesquisa.php" method="post"> <select name="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> </select> <input type="submit" name="acao" value="Buscar"/> </form> <?php if(isset($_POST['acao'])): $id_delegacia = $_POST['delegacia']; $busca ='SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts '; $busca .= 'FROM site_posts WHERE id=:parametro ORDER BY id DESC'; $stm = $pdo->prepare($busca); $stm->bindValue(':parametro', $id_delegacia); $stm->execute(); $posts = $stm->fetchAll(PDO::FETCH_OBJ); if(empty($posts)): echo 'Não foram encontrados nenhum registro!'; else: foreach($posts as $post): ?> <h1><?php echo $post->titulo;?></h1> <p><?php echo $post->conteudo;?></p> <p><?php echo $post->diretor;?></p> <p><?php echo $post->coordenadoria;?> </p><p><?php echo $post->endereco;?></p> <?php endif; endif; ?>
GOSTEI 0
William
20/07/2015
Uma pergunta Marcos você instanciou uma conexão PDO, eu só postei como ficaria mas vc tem que configurar uma conexão?
Exemplo:
Exemplo:
$pdo = new PDO('mysql:host=localhost;dbame=nome_banco', 'usuario_banco', 'senha_banco');
GOSTEI 0
Marcos Roberto
20/07/2015
Boa tarde Willian!
eu fiz a conexão em PDO mais msm assim está dando erro eu n estou conseguindo pegar o id para mostrar na pagina listarpesquisa.php
eu clico na cidade mais ela n traz os resultados do banco de dados, como eu posso fazer isso?
eu fiz a conexão em PDO mais msm assim está dando erro eu n estou conseguindo pegar o id para mostrar na pagina listarpesquisa.php
eu clico na cidade mais ela n traz os resultados do banco de dados, como eu posso fazer isso?
<?php try{ $pdo = new PDO('mysql:host=localhost;dbname=site_teste','teste','belinha157@'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ echo $e->getMessage(); exit("Erro ao conectar"); } ?>
GOSTEI 0
William
20/07/2015
Marcos, preciso saber qual a mensagem de erro que está sendo exibida, caso não esteja habilitado a exibição de erros coloque o seguinte código no topo do seu script:
<?php error_reporting(E_ALL); ini_set('display_errors', 1);
GOSTEI 0
Marcos Roberto
20/07/2015
MWillian do jeito q está o código já era para trazer as informações do banco de dados ?, ou tenho q fazer mais alguma coisa.
o erro q está dando é esse
aqui está meu código
o erro q está dando é esse
arse error: syntax error, unexpected 'endif' (T_ENDIF) in D:\Marcos\Marcos - Windows\wamp\www\Site_Sindicato\delegacia.php on line 56
aqui está meu código
<?php error_reporting(E_ALL); ini_set('display_errors', 1);?> <div id="delegacia"> <form action="listarpesquisa.php" method="post"> <select name="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> </select> <input type="submit" name="acao" value="Buscar"/> </form> <?php if(isset($_POST['acao'])): $id_delegacia = $_POST['delegacia']; $busca ='SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts '; $busca .= 'FROM site_posts WHERE id=:parametro ORDER BY id DESC'; $stm = $pdo->prepare($busca); $stm->bindValue(':parametro', $id_delegacia); $stm->execute(); $posts = $stm->fetchAll(PDO::FETCH_OBJ); if(empty($posts)): echo 'Não foram encontrados nenhum registro!'; else: foreach($posts as $post): ?> <h1><?php echo $post->titulo;?></h1> <p><?php echo $post->conteudo;?></p> <p><?php echo $post->diretor;?></p> <p><?php echo $post->coordenadoria;?> </p><p><?php echo $post->endereco;?></p> <?php endif; endif; ?>
GOSTEI 0
William
20/07/2015
Ele acusa problemas no fechamento de um IF, confere se todas as condições IFs estão sendo fechadas?
GOSTEI 0
Marcos Roberto
20/07/2015
meu banco de dado
[img:descricao=tabela site_post]http://arquivo.devmedia.com.br/forum/imagem/362394-20150721-143606.jpg[/img]
[img:descricao=cat_delegacia]http://arquivo.devmedia.com.br/forum/imagem/362394-20150721-143646.jpg[/img]
[img:descricao=tabela site_post]http://arquivo.devmedia.com.br/forum/imagem/362394-20150721-143606.jpg[/img]
[img:descricao=cat_delegacia]http://arquivo.devmedia.com.br/forum/imagem/362394-20150721-143646.jpg[/img]
GOSTEI 0
William
20/07/2015
Cara o erro é na linha 56, mas acho que você não está postando o script inteiro aqui!
GOSTEI 0
Marcos Roberto
20/07/2015
Willian estou postando todo o meu script , eu n sei se falta mais alguma coisa para ele funciona
<?php require_once 'includes/header.php';?> <?php include_once 'config.php';?> <link rel="stylesheet" type="text/css" href="delegacia/delegacia.css"media="screen"/> <main> <?php error_reporting(E_ALL); ini_set('display_errors', 1);?> <?php error_reporting(E_ALL); ini_set('display_errors', 1);?> <div id="delegacia"> <form action="listarpesquisa.php" method="post"> <select name="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> </select> <input type="submit" name="acao" value="Buscar"/> </form> <?php if(isset($_POST['acao'])): $id_delegacia = $_POST['delegacia']; $busca ='SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts '; $busca .= 'FROM site_posts WHERE id=:parametro ORDER BY id DESC'; $stm = $pdo->prepare($busca); $stm->bindValue(':parametro', $id_delegacia); $stm->execute(); $posts = $stm->fetchAll(PDO::FETCH_OBJ); if(empty($posts)): echo 'Não foram encontrados nenhum registro!'; else: foreach($posts as $post): ?> <h1><?php echo $post->titulo;?></h1> <p><?php echo $post->conteudo;?></p> <p><?php echo $post->diretor;?></p> <p><?php echo $post->coordenadoria;?></p> <p><?php echo $post->endereco;?></p> <?php endif; endif; ?> </div><!--delegacia--> </main> <?php require_once 'includes/footer.php'; ?>
GOSTEI 0
William
20/07/2015
Você colocou 2 vezes esse trecho, retire um deles:
E poste novamente o script com a mensagem de erro separada, pois nele aponta a linha onde está dando problema.
<?php error_reporting(E_ALL); ini_set('display_errors', 1);?>
E poste novamente o script com a mensagem de erro separada, pois nele aponta a linha onde está dando problema.
GOSTEI 0
Marcos Roberto
20/07/2015
Willian está dando o msm erro, ja olhei os fechamento do IF n encontrei nada. Me fala uma coisa o código do jeito q está ja era para funciona, ou está faltando mais alguma coisa?
( ! ) Parse error: syntax error, unexpected 'endif' (T_ENDIF) in D:\Marcos\Marcos- Windows\wamp\www\Site_Sindicato\delegacia.php on line 55
GOSTEI 0
Marcos Roberto
20/07/2015
Boa noite Willian, estou tentando fazer mais n estou conseguindo vc poderia me ajudar eu n sei se falta mais algum código. em pdo estou perdido
GOSTEI 0
William
20/07/2015
Marcos, só por desencargo enviei esse script para o meu email wllfl@ig.com.br, encontrando a solução postamos aqui!
GOSTEI 0
Marcos Roberto
20/07/2015
Boa noite Willian!
Mandei no seu e-mail.
Grato.
Mandei no seu e-mail.
Grato.
GOSTEI 0
William
20/07/2015
Marcos, a falta de atenção foi minha na hora de escrever esse exemplo, esqueci de fechar o foreach() com "endforeach;"
<form action="listarpesquisa.php" method="post"> <select name="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> </select> <input type="hidden" name="acao" value="buscar"/> <input type="submit" value="Buscar"/> </form> <?php if(isset($_POST['acao']) && $_POST['acao'] == 'buscar'): $id_delegacia = $_POST['delegacia']; $busca ='SELECT id, titulo, diretor, coordenadoria, endereco, conteudo, telefone FROM site_posts '; $busca .= 'FROM site_posts WHERE id=:parametro ORDER BY id DESC'; $stm = $pdo->prepare($busca); $stm->bindValue(':parametro', $id_delegacia); $stm->execute(); $posts = $stm->fetchAll(PDO::FETCH_OBJ); if(empty($posts)): echo 'Não foram encontrados nenhum registro!'; else: foreach($posts as $post): ?> <h1><?php echo $post->titulo;?></h1> <p><?php echo $post->conteudo;?></p> <p><?php echo $post->diretor;?></p> <p><?php echo $post->coordenadoria;?> </p><p><?php echo $post->endereco;?></p> <?php endforeach; endif; endif; ?>
GOSTEI 0
Marcos Roberto
20/07/2015
.....
GOSTEI 0
Marcos Roberto
20/07/2015
Boa noite!
Esse código está se comportando igual ao meu, ele monta o combo mas não faz a segunda consulta no banco de dados.
Eu tenho a impressão de que não está fazendo a consulta no banco pq não está pegando o id da delegacia ao seleciona-la no combo.
Como posso testar se esta pegando o id do combo?
Eu fiz um botão pra exibir o id da delegacia que esta no combo, vê se está correto ou se tem uma melhor forma de se fazer.
Esse código está se comportando igual ao meu, ele monta o combo mas não faz a segunda consulta no banco de dados.
Eu tenho a impressão de que não está fazendo a consulta no banco pq não está pegando o id da delegacia ao seleciona-la no combo.
Como posso testar se esta pegando o id do combo?
Eu fiz um botão pra exibir o id da delegacia que esta no combo, vê se está correto ou se tem uma melhor forma de se fazer.
<form action="listarpesquisa.php" method="post"> <select name="delegacia" id="delegacia"> <option value="0" selected="selected">Selecione uma delegacia</option> <?php $sql = 'SELECT id_delegacia, nome_delegacia FROM cat_delegacia'; $stm = $pdo->prepare($sql); $stm->execute(); $dados = $stm->fetchAll(PDO::FETCH_OBJ); foreach($dados as $delegacia): ?> <option value="<?php echo $delegacia->id_delegacia;?>"><?php echo $delegacia->nome_delegacia; ?></option> <?php endforeach; ?> <?php $id_delegacia = $_POST['delegacia']; ?> </select> <input type="hidden" name="acao" value="buscar"/> <input type="submit" value="Buscar"/> <input type="button" value="Buscar" onClick="alert('<?php echo $id_delegacia; ?>'); return true">
GOSTEI 0