我试图将PHP API调用的JSON结果传递给将在视图中显示结果的函数。
curr = curr->next;
功能
script.js
基本上,您在视图的文本框中输入搜索字词,function ajaxProductsSearch() {
products.empty();
preloader.css('visibility', 'visible')
// Issue a request to the proxy
$.post('test.php', {
'search': searchBox.val()
}
function($results) { // pass $results from test.php?
if ($results.results_count == 0) {
preloader.css('visibility', 'hidden');
message.html("We couldn't find anything!").show();
return false;
}
$.each() { // code to display in view?
// var html = '';
// products.append(html);
};
preloader.css('visibility', 'hidden');
}, 'json');
}
会将字符串发布到script.js
脚本,然后运行API查询请求并按{{1}显示结果}。
答案 0 :(得分:1)
这将最初显示您的结果,以便您继续进行开发。
function($results) { // pass $results from test.php?
if ($results.results_count == 0) {
...
}
// toString won't provide a nice output, but it will
// show your results object. Handling the results is
// dependent on the structure of your object.
message.html($results.toString());
}
我建议用指向搜索结果的容器元素的jQuery对象替换message。
E.g。 <div id="search-results"></div>
和$("#search-results").html($results)
。
在风格上更好地从PHP返回JSON对象并使用您的javascript解析它,但我假设您刚刚返回一个包含您当前结果的字符串。
我建议你查看这些功能:
json_encode()
$.parseJSON()
答案 1 :(得分:0)
<强>更新强>
我终于开始工作了,下面是代码,如果有人有兴趣的话。我不确定是否可以将$results
从test.php
传递到script.js
中的某个功能。 console.log($results)
帮助确认API查询是否成功并存储在$results
。
function ajaxProductsSearch(){
products.empty();
preloader.css('visibility','visible');
// Issue a request to the proxy
$.post('test.php', {
'search' : searchBox.val()
},
function($results) { // pass $results from test.php?
console.log($results);
if($results.results_count == 0){
preloader.css('visibility','hidden');
message.html("We couldn't find anything!").show();
return false;
}
$.each($results.results, function(i,item) { // code to display in view?
var html = '<a class="product" data-price="$ '+$results.results[i].price+'" href="'+$results.results.url+'" target="_blank">';
console.log($results.results[0]);
// If the product has images
if($results.results[i].images && $results.results[i].images.length > 0){
html += '<img alt="'+$results.results[i].name+'" src="'+ $results.results[i].images+'"/>';
}
html+='<span>'+$results.results[i].name.substr(0, 20)+'</span></a> ';
products.append(html);
});
preloader.css('visibility','hidden');
},'json');
}