Validating form for the same page only by clicking

Asked

Viewed 1,381 times

-1

In this code I will use it on the same page so that the result returns to the same, how do I validate the form only when click on the button submit?

The code below on the same page returns the error that the field queries is empty. Notice: Undefined index: consulta in C:\xampp\htdocs\index.php on line 227

<form method="POST" action="#" id="consulta" target=”_self”>
            <p>
            <font face="Verdana, Arial, Helvetica, sans-serif">
            <font size="2"> 
                <label for="consulta">Buscar:</label>
                    <input type="text" name="consulta" size="16" style="padding-left: 5px; outline: none; font-size: 9 pt; color: #000000; font-family: Verdana; font-variant: small-;  border-radius: 8px; border: 1px solid #000000">
        </font>
        </font> 
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
        <input type="hidden" value="Ok" name="consulta" />
            <input type="submit" value="Pesquisar" style="outline: none; font-size: 8 pt; color: #000000; font-family: Verdana; font-variant: small-caps; border-radius: 8px; border: 1 solid #000000">
        </font></p>
     </form>

PHP

<?php
        $host = 'localhost'; // endereço do seu mysql
        $user = 'root'; // usuário
        $pass = ''; // senha
        $con = mysql_connect($host,$user,$pass); // função de conexão
        $db = 'consultapagina'; // nome do banco de dados
        mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados
    // Conecte-se ao MySQL antes desse ponto
    // Salva o que foi buscado em uma variável

    $busca = mysql_real_escape_string($_POST['consulta']);
    // ============================================

    // Monta outra consulta MySQL para a busca
    $consultasql = "SELECT * FROM `pagina` WHERE ((`descricao`LIKE '%".$busca."%') OR (`titulo`LIKE '%".$busca."%')) ORDER BY `titulo` DESC";
    // Executa a consulta
    $resultadosql = mysql_query($consultasql) OR DIE(mysql_error());

    // ============================================
    // Começa a exibição dos resultados



    while ($resultado = mysql_fetch_assoc($resultadosql)) {
      $titulo = $resultado['titulo'];
      $texto = $resultado['descricao'];
      $link = $resultado['link'];
      $arquivo = $resultado['arquivo'];
    echo "<ul>";  
      echo "<li>";
        echo "<a href='{$arquivo}'>" ;
          echo "{$titulo} </a>- {$texto}";
      echo "</li>";
      echo "</ul>";
        $conta= $resultado;

    }
    $contador = mysql_num_rows($resultadosql);
    // conta quantos registros encontrados com a nossa especificação
    if ($contador == 0) {
        echo "Nenhum resultado encontrado para ".$busca."!";
    } else {
        // senão
        if ($contador == 1) {
            echo "1 resultado encontrado para ".$busca."!";
        }
        // se houver um resultado diz que existe um resultado
        if ($contador > 1) {
            echo "$contador resultados encontrados para ".$busca."!";
        }
    }
    ?>

1 answer

1


Use so before codes using form data:

if (isset($_POST['consulta'])) { código }
  • Brother thank you so much for your help, without you I would not get. But I had to make a change I put like this if (isset($_POST['consulta'])) { Código } and I didn’t use action in the folder to not open in another tab and change the href and it worked perfectly Edit your answer and I trusted it as a response.

  • Done brother! Let’s help each other... That’s the spirit.

  • I edited the comment.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.