[英]OPENCART Search by category questions
我正在使用OPENCART 2.0,我需要弄清楚如何使搜索功能能够按类别进行搜索。 目前,它仅允许按产品搜索。 该站点是墨水和碳粉电子商务站点。 许多客户不知道他们需要什么墨水,因此他们使用打印机型号名称进行搜索。 打印机型号名称是类别,因此当搜索该特定打印机时,我需要所有相应的墨盒才能显示出来。 该网站是www.1stclassink.com
我一直在使用common.js文件,并且能够进行产品搜索,也可以使用产品描述进行搜索。 但是我不确定如何进入类别。 任何帮助,将不胜感激。
我一直在弄乱这段代码:
/* Search */
$('#search input[name=\'search\']').parent().find('button').on('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';
var value = $('header input[name=\'search\']').val();
if (value) {
url += '&search=' + encodeURIComponent(value) + '&description=true'; //search parameters
}
location = url;
});
好吧,我是php开发人员,但是我还没有在opencart上工作。 但是当我看着您的代码时,这似乎是我的理解。 我认为这可能有效。 试试这个:
$('#search input[name=\'search\']').parent().find('button').on('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';
var filter_name = $('input[name=\'filter_name\']').attr('value');
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
location = url;
});
$('#header input[name=\'filter_name\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';
var filter_name = $('input[name=\'filter_name\']').attr('value');
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
location = url;
}
});
您的头文件将如下所示:
<div id="search">
<div class="button-search"></div>
<?php if ($filter_name) { ?>
<input type="text" name="filter_name" value="<?php echo $filter_name; ?>" />
<?php } else { ?>
<input type="text" name="filter_name" value="<?php echo $text_search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '#000000';" />
<?php } ?>
</div>
</div>
您无法通过名称搜索类别。 您可以做的是获取特定类别下的所有产品,因为您将需要该类别的ID (例如:category_id = 20下的所有产品):
index.php?route=product/search&search=&category_id=20
您需要做的是找到一种从搜索输入中获取类别ID的方法 ,目前我找不到一种简单的方法,但是您可以:
1.通过在catalog/model/catalog/category.php
添加一个函数来修改类别模型 :
public function getCategoryByName($category_name) { $query = $this->db->query("SELECT category_id FROM ". DB_PREFIX . "category_description WHERE name LIKE '%".$category_name."%'"); if(isset($query->row[0]['category_id'])) return $query->row[0]['category_id']; return false; }
2.修改 catalog/contoller/product/search.php
的index()
函数以查找要发送的Get参数(示例&category=true
),然后调用您的函数getCategoryByName()
[在加载类别模型之后]以获取然后将category_id
与index()
函数的其余部分集成在一起。
2' 。 或者, 创建一个控制器来处理AJAX请求 ,获取category_id
并将其通过JQuery插入您的网址:
“ index.php?route = product / search&search =&category_id =” + category_id
注意:这是一个简单的代码,我没有对其进行测试,因此请确保已为您的生产环境准备就绪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.