Tutorial PHP

PHP INÍCIO Introdução ao PHP Instalação do PHP Sintaxe PHP Comentários PHP Variáveis ​​PHP PHP Eco/Impressão Tipos de dados PHP Strings PHP Números PHP Matemática PHP Constantes PHP Operadores PHP PHP If...Else...Elseif Chave PHP Loops PHP Funções PHP Matrizes PHP PHP Superglobais PHP RegEx

Formulários PHP

Manipulação de formulários PHP Validação de formulário PHP Formulário PHP obrigatório URL/e-mail do formulário PHP Formulário PHP completo

PHP Avançado

Data e hora do PHP Incluir PHP Manipulação de arquivos PHP Arquivo PHP Abrir/Ler Arquivo PHP Criar/Gravar Upload de arquivo PHP Cookies PHP Sessões PHP Filtros PHP Filtros PHP Avançados Funções de retorno de chamada do PHP PHP JSON Exceções do PHP

PHP OOP

PHP O que é POO Classes/objetos PHP Construtor PHP Destruidor PHP Modificadores de acesso PHP Herança PHP Constantes PHP Classes abstratas PHP Interfaces PHP Características PHP Métodos estáticos PHP Propriedades estáticas do PHP Namespaces PHP Iteráveis ​​PHP

Banco de dados MySQL

Banco de dados MySQL MySQL Connect MySQL Criar banco de dados MySQL Criar Tabela Dados de inserção do MySQL MySQL Obter Último ID MySQL Inserir Múltiplo Preparado para MySQL Dados de seleção do MySQL MySQL Onde MySQL Ordenar por Dados de exclusão do MySQL Dados de atualização do MySQL Dados de limite do MySQL

PHP XML

Analisadores XML PHP Analisador PHP SimpleXML PHP SimpleXML - Obter PHP XML Expatriado PHP XML DOM

PHP - AJAX

Introdução AJAX PHP AJAX Banco de dados AJAX XML AJAX Pesquisa em tempo real AJAX Enquete AJAX

Exemplos PHP

Exemplos PHP Compilador PHP Teste PHP Exercícios PHP Certificado PHP

Referência PHP

Visão geral do PHP Matriz PHP Calendário PHP Data do PHP Diretório PHP Erro PHP Exceção PHP Sistema de arquivos PHP Filtro PHP PHP FTP PHP JSON Palavras-chave PHP PHP Libxml Correio PHP Matemática PHP PHP Diversos PHP MySQLi Rede PHP Controle de saída PHP PHP RegEx PHP SimpleXML Fluxo PHP String PHP Manipulação de variáveis ​​PHP Analisador XML PHP PHP Zip Fusos horários PHP

Exemplo de PHP - AJAX Live Search


AJAX pode ser usado para criar pesquisas mais amigáveis ​​e interativas.


Pesquisa em tempo real AJAX

O exemplo a seguir demonstrará uma pesquisa ao vivo, na qual você obtém resultados de pesquisa enquanto digita.

A pesquisa ao vivo tem muitos benefícios em comparação com a pesquisa tradicional:

  • Os resultados são mostrados conforme você digita
  • Os resultados diminuem à medida que você continua digitando
  • Se os resultados ficarem muito estreitos, remova os caracteres para ver um resultado mais amplo

Procure uma página do W3Schools no campo de entrada abaixo:

Os resultados no exemplo acima são encontrados em um arquivo XML ( links.xml ). Para tornar este exemplo pequeno e simples, apenas seis resultados estão disponíveis.


Exemplo explicado - A página HTML

Quando um usuário digita um caractere no campo de entrada acima, a função "showResult()" é executada. A função é acionada pelo evento "onkeyup":

<html>
<head>
<script>
function showResult(str) {
  if (str.length==0) {
    document.getElementById("livesearch").innerHTML="";
    document.getElementById("livesearch").style.border="0px";
    return;
  }
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("livesearch").innerHTML=this.responseText;
      document.getElementById("livesearch").style.border="1px solid #A5ACB2";
    }
  }
  xmlhttp.open("GET","livesearch.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>

</body>
</html>

Explicação do código fonte:

Se o campo de entrada estiver vazio (str.length==0), a função limpa o conteúdo do espaço reservado de pesquisa ao vivo e sai da função.

Se o campo de entrada não estiver vazio, a função showResult() executa o seguinte:

  • Criar um objeto XMLHttpRequest
  • Crie a função a ser executada quando a resposta do servidor estiver pronta
  • Envie a solicitação para um arquivo no servidor
  • Observe que um parâmetro (q) é adicionado à URL (com o conteúdo do campo de entrada)


O arquivo PHP

A página no servidor chamada pelo JavaScript acima é um arquivo PHP chamado "livesearch.php".

O código-fonte em "livesearch.php" pesquisa um arquivo XML por títulos que correspondam à string de pesquisa e retorna o resultado:

<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");

$x=$xmlDoc->getElementsByTagName('link');

//get the q parameter from URL
$q=$_GET["q"];

//lookup all links from the xml file if length of q>0
if (strlen($q)>0) {
  $hint="";
  for($i=0; $i<($x->length); $i++) {
    $y=$x->item($i)->getElementsByTagName('title');
    $z=$x->item($i)->getElementsByTagName('url');
    if ($y->item(0)->nodeType==1) {
      //find a link matching the search text
      if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) {
        if ($hint=="") {
          $hint="<a href='" .
          $z->item(0)->childNodes->item(0)->nodeValue .
          "' target='_blank'>" .
          $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
        } else {
          $hint=$hint . "<br /><a href='" .
          $z->item(0)->childNodes->item(0)->nodeValue .
          "' target='_blank'>" .
          $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
        }
      }
    }
  }
}

// Set output to "no suggestion" if no hint was found
// or to the correct values
if ($hint=="") {
  $response="no suggestion";
} else {
  $response=$hint;
}

//output the response
echo $response;
?>

Se houver algum texto enviado do JavaScript (strlen($q) > 0), acontece o seguinte:

  • Carregar um arquivo XML em um novo objeto XML DOM
  • Percorra todos os elementos <title> para encontrar correspondências do texto enviado do JavaScript
  • Define o URL e o título corretos na variável "$response". Se mais de uma correspondência for encontrada, todas as correspondências serão adicionadas à variável
  • Se nenhuma correspondência for encontrada, a variável $response será definida como "sem sugestão"