0

我正在使用 Google Books API PHP,并希望在用户键入搜索关键字时更改它以返回即时标题提示。如何实施q=what user types right now

<script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script>
4

1 回答 1

1

要有效地执行此操作,请删除&callback=handleResponse以便您返回的实际响应是 JSON。

在您的 javascript 中设置一个变量,如下所示:

var request = 'https://www.googleapis.com/books/v1/volumes';

有一个像这样的表单(包含 textarea 和提交)处理程序:

$('#form').onsubmit(function(e){
  e.preventDefault();
  var keywords = $('#myTextAreaInputInsideTheForm').val();
  $.getJSON(request + '?q=' + keywords, function(data){
     //do stuff with the json response
     console.log(data);
  });
});

或者,如果您要求每次在 textarea 中发生更改时调用 XMLHTTPrequest

$('#myTextArea').on('keyup', function(){
      var keywords = $(this).val();
      $.getJSON(request + '?q=' + keywords, function(data){
         //do stuff with the json response
         console.log(data);
      });
});

编辑:我假设您使用的是 textarea,但<input type="text"/>也可以。

EDIT2: 演示演示可能无法正常工作,因为谷歌现在返回 403 禁止。您不能多次调用 URL,否则 google 会阻止您的请求。我建议每写几封信就叫它。祝你好运。

var request = 'https://www.googleapis.com/books/v1/volumes';
$('#myTextArea').on('keyup', function(){

      var keywords = $(this).val();
    if(keywords.length > 0 && keywords.length % 5 == 0){
          $.getJSON(request + '?q=' + keywords, function(data){
             //do stuff with the json response
             console.log(data);
          });
    }
});

使用keyup胜于改变。

于 2015-07-04T19:46:19.500 回答