JQuery автозаполнение при нажатии получает весь список для ввода - PullRequest
0 голосов
/ 17 октября 2011

Я использую jQuery для выполнения автозаполнения, и когда я щелкаю 1 элемент в списке, вход получает все элементы списка (даже

.. )

Этоскрипт, который я называю

       if($_GET['q']) {
        $queryString = $db->real_escape_string($_GET['q']);

        if(strlen($queryString) >0) {

            $query = $db->query("SELECT * FROM .... WHERE name LIKE '%$queryString%'");
            if($query) {
                while ($result = $query ->fetch_object()) {

                    echo "<li>$result->name</li>";


                }
            } else {
                echo 'ERROR: There was a problem with the query.';
            }
        } else {
            // Dont do anything.
        } // There is a queryString.
    } else {
        echo 'There should be no direct access to this script!';
    }

И это jQuery

<script type="text/javascript">
$(function() {
$("#ac3").autocomplete({
    url:'searchcond.php',   
     select: function(event, ui) {
        console.dir(ui);
        event.preventDefault();
        $("#ac3").text(ui.item.label);
    }
    });
    });
</script>

Кроме того, когда я набираю что-то, это не получается.Я должен быстро набрать, чтобы получить правильный запрос

Ответы [ 2 ]

0 голосов
/ 17 октября 2011

Я помню, что автозаполнение jquery требует просто список ответов ключ | значений (по одному на строку), а не список UL-LI:

EG:

echo "$ key | $значение \ n ";

while ($result = $query ->fetch_object()) {
     echo "$result->name\n";
}
0 голосов
/ 17 октября 2011

Чтобы исправить правильный запрос, вы можете добавить опцию задержки или minChars перед поиском: http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

Чтобы получить текст, попробуйте: $("#ac3").text(ui.item.label.text());

...