javascript - opencart $_GET 使用参数重定向到 index.php

标签 javascript php opencart

基本上,我在类别上构建自定义过滤器,并想使用 $_GET 来过滤类别中的产品。我发现每当提交表单输入时,URL 都会被重定向到 index.php?color=1 而不是 index.php?route=product/category&path=59?color=1。

谁能说点什么?

localhost\catalog\view\theme....\category.tpl

      <div class="col-sm-1><!-- color -->
        <spam>Color</spam>
      </div>
      <div class="col-sm-11 form-group">
        <?php foreach ($details_color as $details_color) { ?>
            <div class="checkbox pretty primary">
              <?php if (isset($_GET[$details_color['name']])) { ?>
                <input type="checkbox" name="<?php echo $details_color['name']; ?>" value="<?php echo $details_color['value'] ?>" onchange="this.form.submit()" checked>
                <label><i class="fa fa-check"></i><?php echo $details_color['text']; ?></label>
              <?php } else { ?>
                <input type="checkbox" name="<?php echo $details_color['name']; ?>" value="<?php echo $details_color['value'] ?>" onchange="this.form.submit()">
                <label><i class="fa fa-check"></i><?php echo $details_color['text']; ?></label>
              <?php }?>
            </div>
        <?php } ?>
      </div>

本地主机\目录\ Controller \产品\类别.php

$array_details_color = array('black' => 'Black', 'blue' => 'Blue', 'brown' => 'Brown', 'cream' => 'Cream', 'crystal_color' => 'Crystal', 'gold' => 'Gold', 'gray' => 'Gray', 'green' => 'Green', 'orange' => 'Orange', 'pattern' => 'Pattern', 'pink' => 'Pink', 'purple' => 'Purple', 'red' => 'Red', 'silver' => 'Silver', 'tortoiseshell' => 'Tortoiseshell', 'translucent' => 'Translucent', 'white' => 'White', 'yellow' => 'Yellow');

$data['details_color'] = array();
    foreach ($array_details_color as $key => $value) {
        $data['details_color'][] = array (
            'text'  => $value,
            'name'  => $key,
            'value' => 1
        );
    }

本地主机\catalog\model\catalog\product.php

$array_detail_color = array('black', 'blue', 'brown', 'cream', 'crystal_color', 'gold', 'gray', 'green', 'orange', 'pattern', 'pink', 'purple', 'red', 'silver', 'tortoiseshell', 'translucent', 'white', 'yellow');
    foreach ($array_detail_color as $value) {
        if (isset($_GET[$value])) {
            $sql .= " AND pdtc.$value = 1 ";
        }
    }

最佳答案

可能有一种更具体的 opencart 方法可以做到这一点,但一种简单的方法是采用您的表单并添加两个隐藏的输入。

<input type="hidden" name="route" value"product/category">
<input type="hidden" name="path" value="59">

确保在同一个 <form> 中标记为您的复选框,并在循环之外,这样它就不会被包含很多次。

关于javascript - opencart $_GET 使用参数重定向到 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46125830/

相关文章:

javascript - 如何编写依赖于动态选择器的函数?

javascript - 将 this 保存在类的实例对象中

php - 在 PHP 中构建更直观的聊天过滤器

Php视频上传错误

authentication - 无法访问我的 Opencart 管理面板

php - 我们的网站托管服务商因过度使用 MySQL 而暂停了我们的服务。有人明白为什么吗?

javascript - Windows 8 上的 Google Chrome 不理解 javascript cookie 过期时间中的时间格式

javascript - 浏览器私有(private)全局变量

php - 动态下拉框

javascript - Opencart 3.0 - 如何使用事件系统从目录 Controller 添加内联 JavaScript 代码?