显示API的搜索结果
Display search results from API
你好,我正在尝试创建一个搜索食谱的应用程序。我试过使用Yummly API和BigOven API,但都无法使用。
这是bigOven的代码。我无法在"结果"中显示任何搜索结果。
$(function() {
$('#searchform').submit(function() {
var searchterms = $("#searchterms").val();
// call our search twitter function
getResultsFromYouTube(searchterms);
return false;
});
});
function getResultsFromYouTube (searchterms) {
var apiKey = "dvxveCJB1QugC806d29k1cE6x23Nt64O";
var titleKeyword = "lasagna";
var url = "http://api.bigoven.com/recipes?pg=1&rpp=25&title_kw="+ searchterms + "&api_key="+apiKey;
$.ajax({
type: "GET",
dataType: 'json',
cache: false,
url: url,
success: function (data) {
alert('success');
console.log(data);
$("#results").html(data);
}
});
}
有人能告诉我怎么做吗??非常感谢。
API返回的是JSON数据,而不是HTML。我查看了API文档,没有必要使用JSONP。
但是,当您运行以下代码时:
$('#results').html(data);
您的代码只是将JSON放入HTML中,而这将无法正确显示。您没有说明console.log(data)
是否正确输出数据,但我认为是。
因此,您需要将JSON转换为HTML。您可以通过编程实现,也可以使用模板语言。有许多选项,包括下划线、jquery、胡子和把手。
我推荐使用手柄,但这不是一个简单的代码添加(主要的困难是加载模板,或将其包含在构建中(。
http://handlebarsjs.com/
这将取决于您必须向用户显示哪些键和值,以及以何种方式。。。例如,甚至还有一个图像链接,你可以向用户显示该图像,也可以向他们显示图像链接。。。
所有具有值的键的简单<p>
结构
jQuery
$.each(data.Results, function (key, value) {
$.each(value, function (key, value) {
$("#result").append('<p>Key:-' + key + ' Value:-' + value + '</p>');
});
$("#result").append('<hr/>');
});
您的ajax正在工作,您只需要解析结果。开始:
$.ajax({
type: "GET",
dataType: 'json',
cache: false,
url: url,
success: function (data) {
// Parse the data:
var resultsString = "";
for (var i in data.Results){
console.log( data.Results[i] );
resultsString+= "<div>"+data.Results[i].Title+ " ("+data.Results[i].Cuisine+")</div>";
}
$("#results").html(resultsString);
// If you want to see the raw JSON displayed on the webpage, use this instead:
//$("#results").html( JSON.stringify(data) );
}
});
我创建了一个小的递归函数,它遍历JSON并吐出所有值(我在else条件中为您的输出替换了输出(-
function propertyTest(currentObject, key) {
for (var property in currentObject) {
if (typeof currentObject[property] === "object") {
propertyTest(currentObject[property], property);
} else {
$('#results').append(property + ' -- ' + currentObject[property] + '<br />');
}
}
}
然后我称之为你AJAX的成功-
$.ajax({
type: "GET",
dataType: 'json',
cache: false,
url: url,
success: function (data) {
console.log(data);
propertyTest(data); // called the function
}
});
它吐出JSON中的所有数据,如下所示-http://jsfiddle.net/jayblanchard/2E9jb/3/
相关文章:
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 显示可链接的搜索结果+对齐方式
- 谷歌位置服务附近搜索结果基于正确的地图中心的位置
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 主干,如何记住搜索结果
- 为什么不'我的扩展程序不会出现在Chrome网上商店的搜索结果中
- 如何从谷歌自定义搜索下载搜索结果
- (临时)在Web应用程序中存储JSON搜索结果
- 当至少有20个搜索结果时,只呈现10个搜索结果?使用Google Places API
- (html) Google 地图搜索结果与 Maps/地点 API 调用之间的差异(结果较少)
- 从Spotify API获取乐队名称搜索结果
- 谷歌地图API地点搜索获取搜索结果的数量
- 雅虎财经查询api,要限制到一个国家的搜索结果(Ionic cordova)
- Linkedin人员搜索Javascript API不返回任何结果
- 如何从谷歌网页搜索api重定向搜索结果
- 显示API的搜索结果
- 使用 Node 和 Angular 从 Last.fm API 获取搜索结果
- 使用Meteor.js将Foursquare API的搜索结果添加到新的Mongo集合中