Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Antonio Filho Pereira

Verificar se pelo menos um campo do formulário de busca foi preenchido

Recommended Posts

Boa noite colegas, esta deve ser uma duvida simples, mas como ainda estou iniciando no php, estou com esta dificuldade.
O problema é o seguinte, tenho um formulário de busca com 5 campos, quero que aumenos um campo seja preenchido, se sim, o busca redireciona para a pagina de resultado, se não, exibi uma msg na mesma pagina, só que não quero o alert no javascript. Como posso esta fazendo isto?
Segue link de um site que faz o que eu quero, caso o usuário clique em busca sem preencher nenhum campo.

http://goo.gl/6250w


o form é este:

 

<form method="POST" action="estabelecimento_resultado.php" id="consulta">
    <fieldset>
    <p>
      Nome:<br>
      <input type="text" name="nome" id="nome" class="nomeConsul" value="">
    </p>
    <p>
      Descrição:<br>
      <input type="text" name="descricao" id="descricao" class="nomeConsul" value="">
    </p>
    <p>
      Categoria:<br>
      <select name="id_categoria">
        <option value="">Selecione</option>
        <!-- Loop que percorre o array e monta o combo das categorias -->
         <?php
         require 'includes/conexao.php';
         $query = mysql_query("SELECT id, nome FROM categoria");
         ?>
         <?php while($prod = mysql_fetch_array($query)) { ?>
         <option value="<?php echo $prod['id'] ?>"><?php echo $prod['nome'] ?></option>
         <?php } ?>
       </select>
      </p>
    <p>
      Endereço:<br>
      <input type="text" name="endereco" id="endereco" class="nomeConsul" value="">
    </p>
    <p>
      Bairro:<br>
      <input type="text" name="bairro" id="bairro" class="nomeConsul" value="">
    </p>
    <input type="hidden" name="promo" value="1">
    </fieldset>
    <fieldset>
      <button name="submit">Buscar</button>
    </fieldset>
  </form>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um exemplo básico, para você compreender a lógica

 

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    
    //Exemplo com dois campos
    $nome = $_POST['nome'];    
    $descricao = $_POST['descricao'];
    
    $error=true;// Começa setando 1
    if( $nome !== '' ){
        $error=false;
    } elseif( $descricao !== '' ){
        $error=false;
    }
    
    if($error === true ){
        echo 'Nenhum campo de texto foi preenchido!';
    } else {
        echo 'Pelo menos um campo foi preenchido!';
    }        
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Segue um exemplo básico, para você compreender a lógica

 

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    
    //Exemplo com dois campos
    $nome = $_POST['nome'];    
    $descricao = $_POST['descricao'];
    
    $error=true;// Começa setando 1
    if( $nome !== '' ){
        $error=false;
    } elseif( $descricao !== '' ){
        $error=false;
    }
    
    if($error === true ){
        echo 'Nenhum campo de texto foi preenchido!';
    } else {
        echo 'Pelo menos um campo foi preenchido!';
    }        
}
?>

Perfeito amigo.

 

Agora, se eu colocar este código na pagina resultado, o usuário ao submeter o botão "buscar" será redirecionado para a pagina resultado, e eu quero que se o usuário não preencher nenhum campo, a mensagem seja exibida na pagina de consultado, caso ele preencha algum campo, ira para a pagina de resultado.

 

Sabe como posso esta fazendo isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A várias maneiras de se fazer isso

mas vou passar só duas!

 

a mais simples e mandar o action do form para a mesma página dando include em estabelecimento_resultado.php ou colocando o código php acima do form

 

e manipular o erro em variavéis e dando um echo nela para mostra o erro. em alert de javascritp ou alguma div

 

Segunda é usar um redirecionamento em php ou js

 

php

header("Location: pagina.php?erro=nome_do_erro");

 

e passar junto o erro e resgatar por get na página do form imprimir como na dica um.

 

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela a ajuda WDuarte e todos. como falei, o problema estava apenas no redirecionamento para a pagina resultado. ou seja, no ELSE, assim usei o

require_once('resultado.php' );

. funfou legal.

 

 

Abraços a todos.

Vou marcar como resolvido,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.