Magento - 自动完成建议搜索不起作用

Kno*_*ing 7 search autocomplete magento autosuggest magento-1.4

我在Magento v1.4.2.0中加入了一个新主题,并完成了所有必要的更改,但只遵循Magento真正的方式来覆盖Magento模块和方法.

我唯一的问题是前端的自动完成建议搜索功能根本不起作用.AJAX正在运行,因为我可以在" Firebug"中查看呼叫(状态显示为"200 OK"),但搜索结果下拉列表未到来.

更多信息:

  • 检查表单的方法,并将其设置为" get".
  • " form.mini.phtml" 中的文本字段的名称是" q".
  • 检查了两个日志文件(exception.log&system.log),但此处没有打印任何有关自动完成搜索的内容.
  • 检查最小查询长度的设置(从" 系统>配置>目录>目录搜索>最小查询长度 "),并将其设置为" 1".
  • form.mini.phtml尽可能精确地在" "页面中包含所有HTML ,同时包括所有必需的JS文件,其中没有任何错误.结果,Firebug报告了blank/ NULLAJAX响应,没有任何错误.

编辑: -
我也遇到了另一个问题.假设我有4个产品,每个产品都以名称" Test " 开头.另外,我们假设这4个产品的名称是" 测试1 "," 测试2 "," 测试3 "," 测试4 ".
现在如果我使用查询" Test " 进行简单搜索,在路由器" catalogsearch/index"中,结果显示有4个产品可用,这是正确的.但是,如果我使用查询作为" 测试1 " 进行搜索,则没有显示任何结果,这非常奇怪.

我也使用" jQuery",没有冲突条件.但是,还有6个" jQuery" 插件,所有插件都没有完全遵循无冲突条件.这是因为其中一些插件中的代码很大,而且我不可能将每个" $"符号更改为" jQuery",这使得它不会兼容冲突.任何人都可以提出这类问题吗?它是否以任何方式影响Auto Suggest Search?

Jon*_*Day 7

听起来好像服务器响应AJAX调用的方式存在问题,而不是表单或javascript的问题.我建议你需要调试几个关键领域.

理想情况下,您可以使用连接到IDE(Netbeans,Eclipse,其他)的Apache上的Xdebug进行调试.我的个人偏好/设置是Netbeans,但其他人将工作正常.如果无法使用实时调试,则可以通过代码块插入print_r/echo语句并以此方式跟踪调用.

  1. Mage_CatalogSearch_AjaxController

form.mini.phtml上的javascript应该发送请求Mage_CatalogSearch_AjaxControllersuggestAction.if在此方法的第一个语句的任一侧设置断点/跟踪消息.

如果没有遇到断点/跟踪,请尝试通过放入http://hostname/catalogsearch/ajax/suggest?q=query浏览器地址栏手动点击操作.

如果这不起作用,那么使用catalogsearch模块的配置就会出现问题,可能与该<frontname><routers>部分有关.使用Alan Storm的Configviewer或CommerceBug模块进行调试.

  1. Mage_CatalogSearch_Block_Autocomplete

AjaxController创建一个实例Mage_CatalogSearch_Block_Autocomplete来完成实际的查询.在之前设置断点/跟踪$suggestData = $this->getSuggestData();以检查是否正在实例化块.

在该行之后,该块调用它自己的getSuggestData()方法.继续跟踪代码以查看错误发生的位置.

  1. Mage_CatalogSearch_Model_Query :: getSuggestCollection()

Block调用此方法来检索与qparam 匹配的值,特别是setQueryFilter()将param插入SQL查询条件的方法.再次,通过此处追踪以找到错误.

我不能强调当你在IDE中使用实时调试时,你会发现这个(以及大多数Magento问题)会更容易.如果您需要有关此过程的提示,请在此处阅读我的答案.

确保服务器处于开发者模式,以输出尽可能多的错误.