2013-06-06 3 views
0

Если я вызываю php-файл, поскольку источник не автозаполняется, но если я использую массив, он работает.jQuery autocomplete не работает с json

PHP

$query = mysql_query($req); 

while($row = mysql_fetch_assoc($query)) 
    { 
     $results[] = array('login' => $row['login']); 
    } 

echo json_encode($results); 

//[{"login":"lleal"},{"login":"mmoura"},{"login":"vmatos"},{"login":"csamante"}] 

HTML

$("#logine").autocomplete(
{ 
    source: 'loginsearch.php', 
}) 

Если я преобразовать JSON в массив, как это, он работает:

var lista = []; 
    $.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "loginsearch.php", 
     success: function (data) { 
      $.each(data, function (index, data) { 
       lista.push(data.login); 
      }); 
     } 
    }); 


$("#logine").autocomplete(
{ 
    source: lista, 
}) 

Я только что провел целый день удара головой при этом любые идеи?

+0

действительно ли ваш эхо-отчет возвращает данные? – stackErr

+0

oh и дополнительная запятая в вашем JS 'source: 'loginsearch.php',' ... если у вас нет следующего кода – stackErr

+1

Это точный дубликат http://stackoverflow.com/questions/4234455/jquery- autocomplete-not-working-with-json-data? rq = 1 Иди и найди свой ответ там. Точно так же, хотя вам может понадобиться изменить вывод, например '// [{" id ":" 1, "value": "lleal"} ' – marlenunez

ответ

2

Ваш JSON должен содержать метки переменных и значение для работы автозаполнения.

попробовать

while($row = mysql_fetch_assoc($query)) 
    { 
     $results[] = array('label' => $row['login'], 'value' => $row['login']); 
    } 

или что вы хотите отображать в качестве значения и этикетки.

Смежные вопросы