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