0

我在一个 WordPress 网站上工作。

我想使用 AJAX 方法将搜索结果加载到当前打开的页面中。为此,我需要获取执行搜索的 PHP 代码的输出,而无需打开新页面。

通常,在您输入搜索词后,WordPress 会打开带有如下 URL 的新页面:

mydomain.com/?s=searchword

执行搜索的 PHP 代码的输出显示在该页面的#container div 中。

问题:如何在不打开新页面的情况下获取搜索结果,以便可以使用 jQuery 将它们加载到当前打开的页面中?

我将不胜感激您的建议!

4

1 回答 1

2

这个插件非常适合你。您可能想查看插件的源代码,看看如何自己利用它。

http://wordpress.org/extend/plugins/threewp-ajax-search/screenshots/

我想您也可以自己调用搜索页面,解析出#container 值,然后自己解析结果列表。如果您需要帮助,请告诉我。否则我认为已经开发的插件非常方便。

按照这里的要求,我对我认为我可能会如何做到这一点有更多的想法。这些都不是测试人员,但我的总体想法是合理的。您将不得不根据您的安装进行适当的调整。例如获取与发布。超时。请求数据。

  1. 使用 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'     
            });
    
  2. 处理响应并剔除您感兴趣的数据。 http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery

    $(xml).find('div[class="post"]').each( function() { $("#currentPage").append($(this) + "
    "); });

SO拒绝对该列表位进行代码块。很抱歉。

于 2011-07-14T17:14:03.103 回答