Google предлагает поиск более одного слова

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

<div class="ui-widget">
    <input id="search" />
</div>

код JavaScript

$(function () {
    $("#search").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22http%3A%2F%2Fsuggestqueries.google.com%2Fcomplete%2Fsearch%3Fclient%3Dfirefox%26q%3D" + encodeURIComponent(request.term) + "%22&format=json",
                dataType: "jsonp",
                success: function (data) {
                    response(data.query.results.json.json[1].json);
                }
            });
        },
        minLength: 2
    });
});

http://jsfiddle.net/Xotic750/qjy6H/

когда я ввожу больше, чем одно слово, это не работает (не показывает предложения).
Спасибо за помощь. есть еще один вопрос на эту тему. Могу ли я сохранить результат в массив и перенести его на HTML-страницу? и как я могу это сделать?

1 ответ

Решение

Вам нужно заменить пробелы в request.term по + знак:

Вот рабочий код JS:

$(function () {
    $("#search").autocomplete({
        source: function (request, response) {
            var searchTerm = "auto+" + request.term.replace(" ", "+");
            $.ajax({
                url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22http%3A%2F%2Fsuggestqueries.google.com%2Fcomplete%2Fsearch%3Fclient%3Dfirefox%26q%3D"
+ encodeURIComponent(searchTerm) + "%22&format=json",
                dataType: "jsonp",
                success: function (data) {
                    response(data.query.results.json.json[1].json);
                }
            });
        },
        minLength: 2
    }); });

Вы можете увидеть, как он работает над этим кодом: http://codepen.io/adrenalinedj/pen/MyOZGj

Другие вопросы по тегам