Fórum Executar ação ao selecionar item do combo. #526343
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
Curtir tópico
+ 0Post 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
Gostei + 1
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?
Gostei + 1
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;
?>Gostei + 0
21/07/2015
William
Exemplo:
$pdo = new PDO('mysql:host=localhost;dbame=nome_banco', 'usuario_banco', 'senha_banco');
Gostei + 0
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");
}
?>Gostei + 0
21/07/2015
William
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
Gostei + 0
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;
?>Gostei + 0
21/07/2015
William
Gostei + 0
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]
Gostei + 0
21/07/2015
William
Gostei + 0
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'; ?>Gostei + 0
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.
Gostei + 0
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
Gostei + 0
22/07/2015
Marcos Roberto
Gostei + 0
22/07/2015
William
Gostei + 0
22/07/2015
Marcos Roberto
Mandei no seu e-mail.
Grato.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)