基本上,我在类别上构建自定义过滤器,并想使用 $_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/