@bichukov

Почему может не отображаться запрос в строrе url?

Доброго дня, возникла такая сложность.
Есть такой код
<?
        $GLOBALS['arrFilter1'] = array("PROPERTY_YAVLYAETSI_VALUE"=>"новинкой");
        $GLOBALS['arrFilter2'] = array("PROPERTY_YAVLYAETSI_VALUE"=>"популярным");
        $GLOBALS['arrFilter3'] = array("PROPERTY_YAVLYAETSI_VALUE"=>"акцией");


        if ($_GET["sort"] == "price")
        {
            $arParams["ELEMENT_SORT_FIELD"] = "SCALED_PRICE_1";
        }

        switch ($_GET["order"]) {
            case "new":
                $arParams["FILTER_NAME"]= "arrFilter1";
                break;
            case "hit":
                $arParams["FILTER_NAME"]= "arrFilter2";
                break;
            case "sale":
                $arParams["FILTER_NAME"]= "arrFilter3";
                break;
            case "vozvr":
                $arParams["ELEMENT_SORT_ORDER"]= "asc" ;
                break;
            case "ubiv":
                $arParams["ELEMENT_SORT_ORDER"]= "desc" ;
                break;
            case "popular":
                $arParams["ELEMENT_SORT_ORDER"]= "shows" ;
                break;
        }

        ?>

        <?
        if ($_GET["order"]=='new')
        {
         $href=$APPLICATION->GetCurPageParam("", array("?order"));
        }
        elseif($_GET["order"]=='')
        {
            $href=$APPLICATION->GetCurPageParam("order=new");
        }

        ?>


Так вот, $APPLICATION->GetCurPageParam при его использовании по идее должно отображаться в url гет запрос но там пусто но сортировка работает.
т.е. сейчас так ...catalog/ а должно быть так /catalog/?order=new
Подскажите где я что сделал не так?
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 2
@regsmic
Скорее всего nginx или apache убирает из uri нет запросы.
Ответ написан
@Firsov36
full-stack web developer
Ваш код вырезан из контекста. Скорее всего, вы еще используете какой-то компонент. Вывод списка товаров/разделов с возможностью сортировки этого списка? Скорее всего в этом компоненте используется запись выбранной сортировки в $_SESSION или куках и значения используются оттуда, поэтому у вас

но сортировка работает
.

И я не очень понял фразу

Так вот, $APPLICATION->GetCurPageParam при его использовании по идее должно отображаться в url гет запрос но там пусто


но если правильно понял то как-раз моя догадка ранее объясняет такое поведение: используются значения из запомненных ранее значениях в сесси/куках, но пустом гет-запросе.

А Ваш код не корректно работает, потому как ошибка в использовании функции:

$APPLICATION->GetCurPageParam("", array("?order"));


Во втором параметре должен быть массив переменных для удаления. Переменной как "?order" не бывает, надо писать без "?", просто массив из ключей get запроса.

Вот для теста можете попробовать. Создайте на сайте страничку и запустите, например site.ru/test.php?order=new и увидите, что за чехарда получается, если не правильно использовать параметры функции.

<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

/**
 * @global CMain $APPLICATION
 */

var_dump($APPLICATION->GetCurPageParam());
var_dump($APPLICATION->GetCurPageParam("", ["?order"]));
var_dump($APPLICATION->GetCurPageParam("", ["order"]));
var_dump($APPLICATION->GetCurPageParam("order=new"));

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы