Понедельник, 19.02.2018, 22:35
Приветствую Вас Гость | RSS

Bitrix программирование

Категории раздела
Статистика



Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Экономический словарь! Часть первая работа с формами поиска! Работа с формами и инфоблоками

Каталог статей

Главная » Статьи » Программирование

Экономический словарь! Часть первая работа с формами поиска! Работа с формами и инфоблоками
Задача была такая:

Bitrix CIBlockElement::GetProperty
Bitrix CIBlockElement::GetProperty
Итог:


а если на странице больше 20 элементов, то постраничная навигация!

Начинаем работать:

Сначала заходим в панель управления->Контент->Информ. блоки->Типы информ. блоков->Добавить новый тип
панель управления->Контент->Информ. блоки->Типы информ. блоков->Добавить новый
Заполняем формы(Основное)-> Сохранить

Заходим в наш созданный iblock (в моем случаи Экономический словарь) -> жмем кнопку "Добавить инфоблок” . Заполняем нужные формы. Id инфоблока на понадобится дальше(запомним свой, а мой 43) 


Заполняем свойства (property), заполняем "названия”,”Тип”,”Код”

Bitrix инфоблоки

Жмем сохранить!

Теперь наш информационный блок  есть в меню контент .


Заходим в наш инфо.блок "Экономический словарь”. Жмем "Добавить элемент” и видим что получилось(Значение свойств)!!!! Теперь тестово заполняем эти формы

Bitrix инфо.блок

А теперь начинам программировать!

Подключаем модуль  <? CModule::IncludeModule('iblock');?>

Буди использовать следующие функции:

CIBlockElement::GetList – для получения id элементов  всего списка элементов из  информационного блока.
CIBlockElement::GetByID – для получения получения значений проперти(Property) по id элемента и коду свойства. 
CIBlockElement::GetProperty - Функция возвращает значения свойств для злемента element_id

Для начала нам надо получить список элементов :
if(isset($_GET["Rus"])&& $_GET["Rus"]!="" ){$prop_rus=$_GET["Rus"];}else{$prop_rus="Вы не ввели данные";}/*Если isset($_GET["Rus"])существует и неравно пустоте $_GET["Rus"]!="" *//*то $ prop_rus= переданному значению $_GET["Rus"] иначе Вы не ввели данные*/

if(isset($_GET["Rus"])){$FilterList=array("IBLOCK_ID"=>43,"PROPERTY_Rus"=>$prop_rus);

$FilterList=array("IBLOCK_ID"=>43); /* Мы создаем фильтр для того чтобы достать id элементов из информационного блока чей id=43 */

$res = CIBlockElement::GetList(array(),$FilterList ); /* array() первый массив служит для сортировки на щас не нужен */

Теперь создаем цикл:
while($ob = $res->GetNextElement()) /*$ob  присваиваются элементы массива $res */
         {
          $arFields = $ob->GetFields(); /*$arFields присваиваются элементы массива $ob */
/*Теперь принтим для более удобного вывода используем <pre>*/  echo”<pre>”;
print_r($arFields);
/*узнаем что id элемента равен "ID" то есть $arFields["ID"] */
/* Осталось вытащить значения проперти */
$res2 = CIBlockElement::GetByID($arFields["ID"]); /*Вытаскиваем массив элемента с  ID =$arFields["ID"]*/
  if($obRes = $res2->GetNextElement()) /* Проверка на существование элемента */
    {$ar_Kaz= $obRes->GetProperty("Kaz");/*Вытаскиваем из элемента значение Property(проперти с кодом Kaz */
/* Принтим чтобы узнать в какой переменой массива хроница нужное нам значении которое мы вбили*/ echo”<pre>”; print_r($ar_Kaz);/* Наше значение хроница в VALUE значит  $ar_Kaz["VALUE"]*/

    $Kaz=$ar_Kaz["VALUE"]; /* присваиваем наше значение $Kaz =$ar_Kaz["VALUE"]

    $ar_Rus= $obRes->GetProperty("Rus");

    $Rus=$ar_Rus["VALUE"];

   $ar_Eng= $obRes->GetProperty("Eng");

   $Eng=$ar_Eng["VALUE"];

  $ar_Rus_text= $obRes->GetProperty("Rus_text");

  $Rus_text=$ar_Rus_text["VALUE"];
    }/*Закрываем if*/
} /*Закрываем while*/
/* это мы написали скрипт для формы поиска терминов */

Теперь форма:

<form action="" method="GET">
<input type="hidden" name="letter" value=""/>
<input type="hidden" name="page" value=""/>

<table  width="100%" border="0">
  <tr>
    <td valign="top">Поиск:<br /><input name="Rus" onfocus="if(this.value=='<? if(isset($_GET["Rus"])){echo $Rus;}else{echo"Введите термин";}?>') this.value='';" type="text" value="<? if(isset($_GET["Rus"])){echo $Rus;}else{echo"Введите термин";}?>" /><br />
                Казахский:      <label></label><br />

                  Английский:      <label></label>
                </td>
    <td valign="top">
Результат поиска:<br /><textarea   cols="60" rows="4" readonly="readonly"></textarea></td>
  </tr>
</table><input  type="submit" value="
Найти" />

</form>

Категория: Программирование | Добавил: Shak (05.06.2010) | Автор: Bitrix работа с инфоблоками E
Просмотров: 2554 | Теги: CIBlockElement::GetProperty, CIBlockElement::GetList, CIBlockElement::GetByID, Bitrix api, Bitrix инфоблоки | Рейтинг: 5.0/1
Поиск

Shak © 2018
Копирование материала без указания автора и ссылки на сайт запрещается.
Если вы разместили материал у себя на сайте обязательно свяжитесь со мной shakleinserg{собака}gmail.com
Создать бесплатный сайт с uCoz