Pesquisa ao digitar
24/01/2016
0
Sou novato por aqui e gostaria de contar com o apoio de vocês. Através deste portal, criei uma pesquisa baseada em ajax e php que consiste em efetuar uma consulta de acordo com as inicias digitadas. Está funcionando quando não digito nada exibe tudo e quando digito algo exibe a msg que não encontrou registros.
Veja o princípio da sitaxe:
if(isset($_GET["txtnome"])){
$nome=$_GET["txtnome"];
if(empty($nome)){
$sql = "SELECT * FROM up_ramais_sede";
}else{
$nome .='%';
$sql = "SELECT * FROM up_ramais_sede nome like '$nome'";
}
sleep(1);
$result = mysqli_query($conn,$sql);
$cont = mysqli_affected_rows($conn);
if($cont>0)
Não consegui identificar onde está o erro. Me ajudem por favor. Preciso muito desta pesquisa.
ACT
Antonio Souza
Post mais votado
24/01/2016
Me parece que o seu link tem relação com persistência de dados em "formulários" HTML.
William
Mais Posts
24/01/2016
Marcio Araujo
[url]https://www.devmedia.com.br/forum/dica-formulario-que-persiste-dados-na-busca/541165[/url]
24/01/2016
Antonio Souza
24/01/2016
Marcio Araujo
Obs: o código não é meu.
24/01/2016
William
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20160124-200618.png[/img]
Quanto a sua dúvida poste a instrução AJAX e o código completo do script PHP que realiza a consulta!
24/01/2016
Marcio Araujo
24/01/2016
Antonio Souza
<?php
require_once('../projeto/dts/iniSis.php');
require_once('../projeto/dts/dbaSis.php'); //encontra-se o link de conexão
$conn=connect();
// nova regra
if(isset($_GET["txtnome"])){
$nome=$_GET["txtnome"];
if(empty($nome)){
$sql = "SELECT * FROM up_ramais_sede";
}else{
$nome .='%';
$sql = "SELECT * FROM up_ramais_sede nome like '$nome'";
}
sleep(1);
$result = mysqli_query($conn,$sql);
$cont = mysqli_affected_rows($conn);
if($cont>0){
$tabela = '<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Nome:</th>
<th>Setor:</th>
<th>Ramal:</th>
<th colspan="4">ações:</th>
</tr>
</thead>
</tbody>
<tr>';
$return = $tabela;
foreach($result as $linha):
// while($linha=mysqli_fetch_array($result)){
$return .='<td>'.$linha['nome'].'</td>';
$return .='<td align="center">'.$linha['setor'].'</td>';
$return .='<td align="center">'.$linha['ramal'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';
$return .='</tr>';
endforeach;
//}
echo $return .='</table>';
}else{
echo 'Não foram encontrados registros';
}
}
/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest();
}catch (IEAtual){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(IEAntigo){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(falha){
request = false;
}
}
}
if (!request)
alert("Seu Navegador não suporta Ajax!");
else
return request;
}
/**
* Função para enviar os dados
/************************** */
function getDados(){
/**************************/
// Declaração de Variáveis
var nome = document.getElementById("txtnome").value;
var result = document.getElementById("Resultado");
var xmlreq = CriaRequest();
// Exibi a imagem de progresso
result.innerHTML = '<img src="Progresso1.gif"/>';
// Iniciar uma requisição
xmlreq.open("GET", "Contato.php?txtnome=" + nome, true);
// Atribui uma função para ser executada sempre que houver uma mudança de ado
xmlreq.onreadystatechange = function(){
// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {
// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
result.innerHTML = xmlreq.responseText;
}else{
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
};
xmlreq.send(null);
}
25/01/2016
William
<?php require_once('../projeto/dts/iniSis.php'); require_once('../projeto/dts/dbaSis.php'); //encontra-se o link de conexão $conn=connect(); // nova regra if(isset($_GET["txtnome"])){ $nome=$_GET["txtnome"]; if(empty($nome)){ $sql = "SELECT * FROM up_ramais_sede"; }else{ $nome .='%'; $sql = "SELECT * FROM up_ramais_sede nome like '$nome'"; } sleep(1); $result = mysqli_query($conn,$sql); $cont = mysqli_affected_rows($conn); if($cont>0){ $tabela = '<table border="1" cellspacing="0" cellpadding="0"> <thead> <tr> <th>Nome:</th> <th>Setor:</th> <th>Ramal:</th> <th colspan="4">ações:</th> </tr> </thead> </tbody> <tr>'; $return = $tabela; foreach($result as $linha): // while($linha=mysqli_fetch_array($result)){ $return .='<td>'.$linha['nome'].'</td>'; $return .='<td align="center">'.$linha['setor'].'</td>'; $return .='<td align="center">'.$linha['ramal'].'</td>'; $return .='<td align="center">'.$linha['id'].'</td>'; $return .='<td align="center">'.$linha['id'].'</td>'; $return .='</tr>'; endforeach; //} echo $return .='</table>'; }else{ echo 'Não foram encontrados registros'; } } /** * Função para criar um objeto XMLHTTPRequest */ function CriaRequest() { try{ request = new XMLHttpRequest(); }catch (IEAtual){ try{ request = new ActiveXObject("Msxml2.XMLHTTP"); }catch(IEAntigo){ try{ request = new ActiveXObject("Microsoft.XMLHTTP"); }catch(falha){ request = false; } } } if (!request) alert("Seu Navegador não suporta Ajax!"); else return request; } /** * Função para enviar os dados /************************** */ function getDados(){ /**************************/ // Declaração de Variáveis var nome = document.getElementById("txtnome").value; var result = document.getElementById("Resultado"); var xmlreq = CriaRequest(); // Exibi a imagem de progresso result.innerHTML = '<img src="Progresso1.gif"/>'; // Iniciar uma requisição xmlreq.open("GET", "Contato.php?txtnome=" + nome, true); // Atribui uma função para ser executada sempre que houver uma mudança de ado xmlreq.onreadystatechange = function(){ // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4) if (xmlreq.readyState == 4) { // Verifica se o arquivo foi encontrado com sucesso if (xmlreq.status == 200) { result.innerHTML = xmlreq.responseText; }else{ result.innerHTML = "Erro: " + xmlreq.statusText; } } }; xmlreq.send(null); }
25/01/2016
Antonio Souza
02/02/2016
Antonio Souza
Vejo que não deu importância ao meu questionamento sobre a pesquisa, não é mesmo. Ficou de analisar e me retornar! Vale lembrar que a função foi obtida neste mesmo portal.
03/02/2016
William
Vejo que não deu importância ao meu questionamento sobre a pesquisa, não é mesmo. Ficou de analisar e me retornar! Vale lembrar que a função foi obtida neste mesmo portal.
Então Antonio fiquei de analisar seu código sim, mas infelizmente não vivo de responder fóruns apesar de já ter respondido mais de 1900 dúvidas!
Acesso o fórum conforme minha disponibilidade de tempo que ultimamente tem sido pouco, as pessoas ajudam quando podem e tem tempo para testar códigos.
Quanto ao seu escript, seu erro está nesse trecho, está faltando "WHERE" na instrução SQL:
else{ $nome .='%'; $sql = "SELECT * FROM up_ramais_sede nome like '$nome'"; }
OBS: Consultas com strings concatenadas são uma falha grande de segurança, pesquise sobre parametrização de consultas.
Clique aqui para fazer login e interagir na Comunidade :)