Executar ação ao selecionar item do combo.
20/07/2015
0
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
Post mais votado
20/07/2015
[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; ?>
William
Mais Posts
20/07/2015
Fernando C
1. essa linha:
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:
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?
21/07/2015
Marcos Roberto
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; ?>
21/07/2015
William
Exemplo:
$pdo = new PDO('mysql:host=localhost;dbame=nome_banco', 'usuario_banco', 'senha_banco');
21/07/2015
Marcos Roberto
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"); } ?>
21/07/2015
William
<?php error_reporting(E_ALL); ini_set('display_errors', 1);
21/07/2015
Marcos Roberto
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; ?>
21/07/2015
William
21/07/2015
Marcos Roberto
[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]
21/07/2015
William
21/07/2015
Marcos Roberto
<?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'; ?>
21/07/2015
William
<?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.
21/07/2015
Marcos Roberto
( ! ) Parse error: syntax error, unexpected 'endif' (T_ENDIF) in D:\Marcos\Marcos- Windows\wamp\www\Site_Sindicato\delegacia.php on line 55
22/07/2015
Marcos Roberto
22/07/2015
William
Clique aqui para fazer login e interagir na Comunidade :)