jquery ui autocomplete + php does not work

1

I have the following codes that are not working: Maybe I should add something to them, but I do not know how ... JS:

<script>
  $(document).ready(function(){
    $('#busca').autocomplete(
    {
      source: "busca_empresa.php",
      minLength: 1
    });
});
</script>

HTML

<label for="busca">
 <span>Pesquisa:</span>
 <input type="text" id="busca"/>
</label>

PHP

<?
include('conecta.php');

$pesquisa = $_GET['term']; 
$sql = "SELECT * from anuncios where nome_emp like '%$pesquisa%'";
$query = mysqli_query($conexao,$sql);

while ($ln = mysqli_fetch_array($query)) {
	echo json_encode($ln['nome_emp']);
}
    
asked by anonymous 26.03.2016 / 21:10

1 answer

1

This problem occurs because you are always generating a new JSON.

You should create a json ARRAY, so you can use:

<?php
//...

$json = array(); 
// Cria uma array (para remover erro em algumas versões do PHP)

while ($ln = mysqli_fetch_array($query)) {
    $json[] = $ln['nome_emp']; 
    // Adiciona um valor a cada "while" dentro da array.
}

echo json_encode($json);
// Exibe toda a array ($json) em JSON.

//..
?>

Comparison:

YOUR CODE:

Suppose there is this code, using your function, of the question:

$dbs = array('biscoito', 'bolacha', 'cogumelo');
// Simulação de um "banco de dados

foreach($dbs as $db){
// Mesmo que um while

echo json_encode($db);
}

Result:

"biscoito""bolacha""cogumelo"

MY CODE:

Suppose you use my code:

$dbs = array('biscoito', 'bolacha', 'cogumelo');
// Simulação de um "banco de dados

$json = array();
// Cria uma array (para remover erro em algumas versões do PHP)

foreach($dbs as $db){
// Mesmo que um while

$json[] = $db;
}

echo json_encode($json);
// Exibe toda a array ($json) em JSON.

Result:

["biscoito","bolacha","cogumelo"]
    
27.03.2016 / 01:59