2012-03-18 2 views
1

Я пытаюсь создать поле автозаполнения с удаленным источником вытягивать данные из базы данных SQL:Повторных результатов для jQueryUI автозаполнения из базы данных MySql

$("#venuename").autocomplete({ 
     source: function(req, add){ 
       $.getJSON("../autocomplete/venues.php?callback=?", req, function(data) {       
         var suggestions = []; 
         $.each(data, function(i, val){ 
         suggestions.push(val.name); 
       }); 
       add(suggestions); 
     }); 
} 
}); 

venues.php:

require '../../includes/connect.php'; 

$param = $_GET["term"]; 


$query = mysql_query("SELECT * FROM venue_details WHERE venueName REGEXP '^$param'"); 


for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) { 
    $row = mysql_fetch_assoc($query); 

    $venues[$x] = array("venueName" => $row["venueName"]); 
} 


$response = $_GET["callback"] . "(" . json_encode($venues) . ")"; 
echo $response; 

I «Я много часов ломал голову над тем, почему это не работает, и просмотрел многочисленные онлайн-ресурсы для ответов, но не нашел ничего, чтобы исправить мои проблемы. Любая помощь будет оценена по достоинству.

+0

какие у вас проблемы? – Rafay

+0

try '$ .getJSON (" ../ autcomplete/venues.php? Callback =? ", {Term: req}, function (' – Rafay

+0

Извините, я должен был уточнить - автозаполнение просто не работает. Ничего не происходит, когда набрав в поле Я попытался «{term: req}», но безрезультатно. –

ответ

0

JQuery автозаполнения нуждается в label и/или value поле, возвращенное:

Свойство Метка отображается в меню внушения. Значение будет вставлено во входной элемент после того, как пользователь выбрал что-то из меню. Если указано только одно свойство, оно будет использоваться для обоих, например. если вы предоставляете только значения-свойства, это значение также будет использоваться как метка. jquery ui docs

Есть несколько способов решить эту проблему, но если вы используете jsonp вы можете попробовать jquery ui's example

Вы могли бы попробовать это изменить:

$venues[$x] = array("venueName" => $row["venueName"]); 

к этому:

$venues[$x] = array("label" => $row["venueName"]); 

Он будет использовать значение label для как выпадающий, так и атрибут value выпадающего списка.

+0

Это именно то место, где я было не так, спасибо за hel п! –

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