我正在使用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;
});
答案 0 :(得分:0)
我是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>
答案 1 :(得分:0)
您无法按名称搜索类别。 您可以做的是获取特定类别下的所有产品,因为您需要类别的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。修改index()
内的catalog/contoller/product/search.php
函数以查找Get参数
你会发送(例如&category=true
),然后调用你的函数
getCategoryByName()
[加载类别模型后]获取
category_id
然后将其与index()
的重新整合
功能。
<强> 2 即可。或者,创建一个控制器来处理AJAX请求,获取category_id
并通过JQuery将其插入您的网址:
“index.php?route = product / search&amp; search =&amp; category_id =”+ category_id
N.B:这是一个简单的代码,我没有对其进行测试,因此请确保它已为您的生产环境做好准备。