我在WordPress网站上工作。
我想使用AJAX方法将搜索结果加载到当前打开的页面中。为了能够做到这一点,我需要获得执行搜索的PHP代码的输出,而无需打开新页面。
通常,在您键入搜索词后,WordPress会打开包含以下URL的新页面:
mydomain.com/?s=searchword
执行搜索的PHP代码的输出显示在该页面的#container div中。
问题:如何在不打开新页面的情况下获取搜索结果,以便我可以使用jQuery将它们加载到当前打开的页面中?
我很感激你的建议!
答案 0 :(得分:2)
这个插件非常适合你。您可能希望查看插件的源代码,并了解如何自行利用它。
http://wordpress.org/extend/plugins/threewp-ajax-search/screenshots/
我想您也可以自己调用搜索页面,解析#container值,然后自己解析结果列表。如果您需要帮助,请告诉我。否则我认为已经开发的插件非常方便。
根据要求,这里有一些关于我认为我可能会这样做的更多想法。这些都不是测试人员,但我的一般想法是合理的。您必须根据需要调整一些内容以匹配您的安装。例如Get vs Post。超时。请求数据。
使用jQuery的ajax调用来请求搜索页面。
$.ajax({
async: true,
data: $dataToSend,
datatype: 'xml',
beforeSend: function() {
console.log('rq');
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('error');
},
success: function(xml, textstatus, jqXHR) {
//Process Response Data
},
timeout: 10000,
type: 'POST',
url: 'http://' + document.location.host + '/search'
});
处理响应并剔除您感兴趣的数据。 http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery
$(xml).find('div [class =“post”]')。each(function(){
$(“#currentPage”)。append($(this)+“
”);
});
SO拒绝对列表位进行代码阻止。对此感到抱歉。