@VlasT

Фильтрация полей в Highload блоке?

Добрый день! на сайте треболовалось вывести фильтрацию страны, регионов и городов в поля селект. Вывел вот таким вот образом.

<?

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity;

CModule::IncludeModule('iblock');
CModule::IncludeModule('highloadblock');

   $hlblock = HL\HighloadBlockTable::getById(4)->fetch(); // id highload блока
   $entity = HL\HighloadBlockTable::compileEntity($hlblock);
   $entityClass = $entity->getDataClass();

   $res = $entityClass::getList(array(
       'select' => array('*'),
       //'order' => array('ID' => 'ASC'),
   ));
   $regions = [];
   $gorods = [];
   $strana = [];
while($row = $res->fetch()) {
    $row = $res->fetch();


    if($row['UF_REGION'] != '')
        $regions[] = $row["UF_REGION"];
    if($row['UF_GOROD'] != '')
        $gorods[] = $row["UF_GOROD"];
    if($row['UF_STRANA'] != '')
     $strana[] = $row["UF_STRANA"];
}

if (!empty($arResult['ERROR']))
{
	echo $arResult['ERROR'];
	return false;
}

$GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/js/highloadblock/css/highloadblock.css');

//$GLOBALS['APPLICATION']->SetTitle('Highloadblock List');

$aCity = array();

foreach($arResult["rows"] as $arElement){

if(!isset($aCity[$arElement["UF_GOROD"]])  && $arElement["UF_GOROD"] != ""  && $arElement["UF_GOROD"] != "&nbsp;" && $arElement["UF_VYGRUZHATNASAYT"]=="да" ){

$aCity[$arElement["UF_GOROD"]] = $arElement["UF_GOROD"];

}
}

sort($aCity);
$gorods = array_unique($gorods);
$regions = array_unique($regions);
$strana = array_unique($strana);
sort($gorods);
sort($regions);
sort($strana);
?>


Подскажите как добавить фильтрацию. Чтобы при выборе Страны , из других списков исключались регионы и города других стран.

Аналогично при выборе региона. чтобы исключались города другого региона при выборе.

Прошу прощения, возможно я как-то некорректно выражаюсь. Готов оперативно все уточнить
  • Вопрос задан
  • 214 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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