2013-07-30 5 views
0

Я пытаюсь создать поле ввода автозаполнения, которое, когда вы нажимаете внутри, чтобы напечатать, загружает список слов автозаполнения из базы данных. У меня есть список слов, загружающих штраф из базы данных через вызов AJAX, но когда я передаю это функции автозаполнения, он начинает возвращать значение 404.jQueryUI autocomplete возвращает a 404

Я понятия не имею, почему данные отображаются в моем предупреждении, но не будет автозаполнять правильно?

$(document).ready(function() { 
    $("#tags").click(function() { 
     $.ajax({ 
      url: 'get_players.php', 
      success: function(data){ 
       alert(data); // This returns the correct string. 
       $("#tags").autocomplete({ 
        source: data 
       }); 
      } 
     }); 
    }); 
}); // END Document.ready. 

UPDATE: данные возвращаются как строка (я думаю). Я хочу использовать это для программы проекта футбола, поэтому данные - это список названий игроков, разделенных запятыми. Пример:

'Andy Dalton - QB Bengals', 'Adrian Peterson - RB Vikings', 'Tom Brady - QB Patriots' 

Это мой get_players.php

<?php 
//Connect to the Database. 
$mysqli = new mysqli("localhost","username","password", "draftboard"); 

// Check said connection. 
if ($mysqli->connect_errno) 
{ 
    print "An error has occured."; 
} 

// Get all the players. 
$result = $mysqli->query("SELECT * FROM players"); 

if($result->num_rows > 0) { 

    // For each member of the group... 
    for($i = 0; $i < $result->num_rows; $i++) 
    { 
     $row = $result->fetch_assoc(); 
     echo "'" .$row['name'] . " - " . $row['position'] . " " . $row['team']."', "; 
    } 
    $result->close(); 
} 
?> 
+1

Что такое '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Не могли бы вы привести пример того, что возвращает ajax-вызов 'get_players.php'? – Joe

+0

Я обновил вопрос с примерным значением и моим кодом. Благодаря! – Brian

+0

Ваш 'source' должен быть либо URL-адресом, переданным в виде строки, либо массивом элементов, либо функцией. Ваш «источник» любой из этих 3? Я подозреваю, что вы просто передаете строку, и автозаполнение рассматривает ее как URL-адрес, но не может найти этот URL-адрес. Следовательно, 404. – putvande

ответ

1

autocomplete ожидает URL-адрес, массив или функцию. Вы в настоящее время передаете строку, поэтому просто используйте ее, чтобы скрыть ее в массив:

$("#tags").autocomplete({ 
    source: data.split(",") 
}); 
Смежные вопросы