我正在使用 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>
我正在使用 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>
要有效地执行此操作,请删除&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
胜于改变。