Como montar um autocomplete em PHP, retornando dois campos?

jQuery

PHP

24/01/2017

Olá pessoal, sou novo aqui e estou precisando de ajuda, atualmente estou em um projeto e estamos tentando montar um script autocomplete que me retorne dois campos. Atualmente já consegui o autocomplete com um campo, mais não consigo fazer o mesmo com dois ou mais campos. Podem me auxiliar.

CODIGO HTML
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
 
        <title>Matheus Piscioneri</title>
        <script type="text/javascript" src="autocomplete/jquery-1.4.2.js"></script>
        <script type='text/javascript' src="autocomplete/jquery.autocomplete.js"></script>
        <link rel="stylesheet" type="text/css" href="autocomplete/jquery.autocomplete.css" />
        <script type="text/javascript">
            $().ready(function() {
                $("#course").autocomplete("ajaxCNAE.php", {
                    width: 260,
                    matchContains: true,
                    //mustMatch: true,
                    //minChars: 0,
                    //multiple: true,
                    //highlight: false,
                    //multipleSeparator: ",",
                    selectFirst: false
                });
            });
        </script>
    </head>
    <body>
        <h2>Autocomplete usando jQuery, Ajax, PHP</h1>

        <div id="content">
            <form autocomplete="off">
                <p>
                    Digite um nome:
                    <input type="text" name="course" id="course" />
                    
                </p>
 
            </form>
        </div>
</body>
</html>


CODIGO PHP
<?php
require_once('../conexao.php');
 
$q = strtolower($_GET["q"]);
if (!$q) return;
 
$sql = "select DISTINCT descricao, cnae from tb_cnae where descricao LIKE '%$q%'";

$rsd = mysqli_query($conexao, $sql);
while($rs = mysqli_fetch_array($rsd)) {
    $cname = imap_utf7_decode($rs['descricao'];
    echo "$cname";
}
?>


até o momento foi o que consegui.
José Silva

José Silva

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

24/01/2017

Opa, José. Tudo bem?

Em que ponto do código exatamente está sua dificuldade? Para retornar mais de um valor, você precisará retorná-los na forma de JSON para o HTML e no success do $.ajax tratar esse retorno.
GOSTEI 0
José Silva

José Silva

24/01/2017

Oi Joel tudo bem, Cara não manjo como funciona o json é minha primeira vez pode me auxiliar com isso?
GOSTEI 0
Marcos Silva

Marcos Silva

24/01/2017

tenta isso

<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Cache-Control: no-store, no-cache, must-revalidate ''");
header ("Cache-Control: post-check = 0, pre-check = 0 '', false");
header ("Pragma: no-cache");
header ("Content-Type: text/html; charset=iso-8859-1",true);
?>
<?php
require_once(''../Connections/conectbd.php'');
$conectbd=mysql_connect($hostname, $username, $senha);
mysql_select_db($banco);


$q = strtolower($_GET["q"]);
if (!$q) return;

$sql = "select DISTINCT nome from tce_cerimonial where nome LIKE ''%$q%''";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {


$cname = $rs[''nome''];
echo "$cname\\\\n";

}
?>
GOSTEI 0
Marcos Silva

Marcos Silva

24/01/2017

tenta isso

<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Cache-Control: no-store, no-cache, must-revalidate ''''");
header ("Cache-Control: post-check = 0, pre-check = 0 '''', false");
header ("Pragma: no-cache");
header ("Content-Type: text/html; charset=iso-8859-1",true);
?>
<?php
require_once(''''../Connections/conectbd.php'''');
$conectbd=mysql_connect($hostname, $username, $senha);
mysql_select_db($banco);


$q = strtolower($_GET["q"]);
if (!$q) return;

$sql = "select DISTINCT nome from tce_cerimonial where nome LIKE ''''%$q%''''";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {


$cname = $rs[''''nome''''];
echo "$cname\\\\\\\\\\\\\\\\n";

}
?>




isso vai resolver a questão da consulta e caracteres especiais.

na pagina index usa assim....

<?php
session_start();
?>
<script type="text/javascript">
$().ready(function() {
$("#nome").autocomplete("autoComplete.php", {
width: 240,
matchContains: true,
//mustMatch: true,
//minChars: 0,
//multiple: true,
//highlight: false,
//multipleSeparator: ",",
selectFirst: false
});
});
</script>
<div>
<form autocomplete="off" method="POST" action="">
<p>
Nome:
<input name="nome" type="text" id="nome" size="35" maxlength="35" />
<input type="submit" name="pesquisa" value="Pesquisar" style="float:right; background:#0099FF;">

</p>

</form
></div>
<?php

require_once(''../Connections/conexao.php'');

if(empty($nome)){

}

if(!isset($_GET[''nome''])){
$nome = $_POST[''nome''];

if(!empty($_POST[''nome''])){


//SQL para selecionar os registros
$result_cursos = "SELECT * FROM tce_cerimonial WHERE nome LIKE ''%".$nome."%'' LIMIT 1";
$resultado_cursos = mysqli_query($conectbd, $result_cursos);
$total_cursos = mysqli_num_rows($resultado_cursos);

while($rows_usuario = mysqli_fetch_assoc($resultado_cursos)){
echo "<br>";
echo "<strong>NOME:</strong>  " . $rows_usuario[''nome''] ."<br>";
echo "<br>";
echo "<strong>INSTITUIÇÃO:</strong>  " . $rows_usuario[''instituicao''] . "<br>";
echo "<br>";
echo "<strong>EMAIL:</strong>  " . $rows_usuario[''email''] . "<br>";
echo "<br>";
echo "<strong>ENDEREÇO:</strong>  " . $rows_usuario[''endereco''] . "<br>";
echo "<br>";
echo "<strong>CONTATO:</strong>  " . $rows_usuario[''telefone''] . "<br>";



}
}}

?>
GOSTEI 0
POSTAR