繁体   English   中英

OPENCART按类别搜索问题

[英]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_idindex()函数的其余部分集成在一起。

  • 2' 或者, 创建一个控制器来处理AJAX请求 ,获取category_id并将其通过JQuery插入您的网址:

    “ index.php?route = product / search&search =&category_id =” + category_id

注意:这是一个简单的代码,我没有对其进行测试,因此请确保已为您的生产环境准备就绪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM