Задать вопрос

Как добавить массив в get параметр битрикс?

друзья,
подскажите, хочу фильтровать товары по нескольким значениям свойства.
использую фильтрацию через get параметры.

стандартно перед компонентов вывожу
$GLOBALS['recipesFilter'] = array('=PROPERTY_connection' => $_GET['recipes']);


все отлично фильтрует, но я хочу фильтровать сразу по нескольким значениям. Мне достаточно передать массив, например
$GLOBALS['recipesFilter'] = array('=PROPERTY_connection' => array(18, 25));


я хочу это массив формировать get параметрами, значит мне нужен следующий вид

array(1) {
  ["recipes"]=>
  array(2) {
    [0]=>
    18,
 [1]=>
    25
  }
}


$_GET['recipes'] у меня формируется следующим образом
<?=$APPLICATION->GetCurPageParam("recipes=".$item);?>
, где у списка я не удаляю параметр recipes и поэтому происходит строка /recipes/?recipes=22&recipes=845, что в корне неверно

я должен прийти к строке с разделителем типо ?recipes=22;845;67 и ее наверно дальше разбирать.

Помогите доразобраться с этим вопросом
я еще видел вариант такой
<?=$APPLICATION->GetCurPageParam("recipes[]=".$item);?>
- [] после параметра, но почему то битрикс не добавляет в этот массив следующий элемент.
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@koder_1
Битрикс программист
Вы просто для теста в форме задайте
<input type="text" name="recipes[]" value="1"><input type="text" name="recipes[]" value="2">
отправьте ее и посмотрите как формируется в get-строке такой параметр, а потом сделайте в вашей get-строке так же.

recipes=22&recipes=845 вот эта строка даст в $_GET только recipes = 845, более позднее значение ключа recipes затрет более раннее.
Ответ написан
<?=$APPLICATION->GetCurPageParam("recipes[]=".$item);?>

Это как-то топорно. Попробуйте так:
$addParams = [
    'recipe' =>[18, 25],
];
echo $APPLICATION->GetCurPageParam( http_build_query($addParams), array_keys($addParams) );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы