Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не работает фильтр с кириллицей

00 голосов
4
Здравствуйте.
Возможно ли и если да, то как, использовать в фильтре кириллицу ?
У меня есть свойство  "PROPERTY_PRIVOD", пытаюсь вывести все элементы где это свойство принимает значение "Полный".
В итоге получаю null.
Код
$arSelect = Array("ID", "NAME", "PROPERTY_MEST", "PROPERTY_PRIVOD", "PROPERTY_PRICE");
$arFilter = Array("IBLOCK_ID"=>$carIB, "SECTION_ID"=>$carSB, "PROPERTY_MEST"=>$carMEST, "PROPERTY_PRIVOD"=>"Полный", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>1), $arSelect);
while($ob = $res->GetNextElement())
{
  $arFields = $ob->GetFields();
}
У свойства PRIVOD - тип список.
Может дело не в кириллице ?
спросил 23 Май, 13 от Cawka (200 баллов)

4 Ответы

00 голосов
Кодировка файла, где находятся эти строки, та?
ответил 23 Май, 13 от KILLERI (380 баллов)
00 голосов
Битрикс устанавливался в кодировке UTF8. Кодировка файла где находится скрипт тоже UTF8.
Скрипт находится в файле test.php, вот он:

Код
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$carIB=IntVal(trim($_REQUEST["IB"]));
$carSB=IntVal(trim($_REQUEST["SB"]));

$carMEST=trim($_REQUEST["MEST"]) ;
$carPRIVOD=trim($_REQUEST["PRIVOD"]) ;
$carDVIG=trim($_REQUEST["DVIG"]) ;

if(CModule::IncludeModule("iblock")){

$arSelect = Array("ID", "NAME", "PROPERTY_MEST", "PROPERTY_PRIVOD", "PROPERTY_PRICE", "PROPERTY_DVIG", "PROPERTY_MODEL");
$arFilter = Array("IBLOCK_ID"=>$carIB, "SECTION_ID"=>$carSB, "PROPERTY_MEST"=>$carMEST, "PROPERTY_PRIVOD"=>"Задний",  "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>1), $arSelect);
while($ob = $res->GetNextElement())
{
  $arFields = $ob->GetFields();

$json['MEST']=$arFields['PROPERTY_MEST_VALUE'];
$json['PRIVOD']=$arFields['PROPERTY_PRIVOD_VALUE'];
$json['DVIG']=$arFields['PROPERTY_DVIG_VALUE'];
$json['PRICE']=$arFields['PROPERTY_PRICE_VALUE'];
$json['MODEL']=$arFields['PROPERTY_MODEL_VALUE'];

}

echo json_encode($json);

}

?>
 
ответил 23 Май, 13 от Cawka (200 баллов)
00 голосов
Цитата
Alexander Ilyankin пишет:
У свойства PRIVOD - тип список.
Может дело не в кириллице ?
Да, не в кириллице. Для свойства типа список необходимо либо передавать ID значения списка, либо вот так:
Код
"PROPERTY_PRIVOD_VALUE" => "Полный"
Документация
ответил 13 Авг, 13 от Pomnep (13,960 баллов)
00 голосов
Спасибо, сработало smile:)
ответил 13 Ноя, 13 от Cawka (200 баллов)

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

0 голосов
1 ответ
0 голосов
2 ответов
спросил 24 Ноя, 13 от SpiroW (140 баллов)
0 голосов
4 ответов
спросил 03 Июль, 13 от wogich (630 баллов)
0 голосов
2 ответов
0 голосов
5 ответов
спросил 18 Ноя, 13 от Chemikals (840 баллов)