【发布时间】:2018-08-14 23:19:36
【问题描述】:
所以,我有两种形式来过滤产品,一种带有复选框,另一种带有选择选项。
当我选中一个复选框时,表单被提交并且查询字符串更新为它的值,当我选中另一个复选框时同样发生,但是当我选择一个选项时,当前查询字符串重置并仅添加该选项值在当前查询之后或之前添加它。
我想要的是联合查询字符串中的两个 $_GET 索引,与提交顺序无关。我怎样才能做到这一点?如果有人知道,我将不胜感激。
$marca_get = isset($_GET['marca']) && is_array($_GET['marca'])
? $_GET['marca'] : [];
if ( isset($_GET['ordem']) ) {
if ( $_GET['ordem'] == 'vendas' ) {
$orderby = 'vendas';
}
if ( $_GET['ordem'] == 'avaliacoes' ) {
$orderby = 'avaliacoes';
}
}
<form method="get">
<input type="checkbox" id="amd" class="checkbox-filtro" name="marca[]"
value="amd">
<label for="amd">AMD</label>
<input type="checkbox" id="intel" class="checkbox-filtro" name="marca[]"
value="intel">
<label for="intel">Intel</label>
</form>
<form method="get">
<select id="ordem" name="ordem">
<option value="vendas">Mais vendidos</option>
<option value="avaliacoes">Melhor avaliados</option>
</select>
</form>
$('#ordem, .checkbox-filtro').on('change', function() {
this.form.submit();
});
【问题讨论】:
-
...把它们放在同一个表格里?
-
@LeeKowalkowski 我在这两种形式之间有更多的内容,所以我认为将所有内容包装在一个形式中并不是一个好习惯。
-
@JeremiahCabigting我去看看
标签: php html get filtering query-string