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

Информационный блок + WEB форма

00 голосов
4
Приветствую, Коллеги!

Вот с какой проблемой я столкнулся:
у меня есть на страничке компонент 2.0 Календарь, есть инфоблок с событиями (семинары, форумы, конференции и т.д.), написал Web-форму (для регистрации на события).
Как это должно работать:
календарь у меня показывает события на текущий месяц, события хранятся в инфоблоке (в этом месте все работает отлично). На страницу details.php (детальное описание каждого события) я положил для заполнения web форму.
Хочу, чтобы в результаты web формы вписывалось название события из инфоблока (для чего в web форме сделано скрытое поле).
Чего я не пойму:
Как сделать так чтобы в web-форму в скрытое поле попадало название события из инфоблока? Подскажите как это сделать или где бы про это прочитать...
спросил 16 Янв, 14 от ELVIS (100 баллов)

4 Ответы

00 голосов
Если у вас в детальном просмотре передается ID элемента инфоблока или что-то ещё что его может определить, воспользутейсь одной из функций вроде CIBlockElement::GetElementByID, которая найдет нужный вам элемент по ID.
ответил 03 Май, 14 от GUCCI (440 баллов)
00 голосов
Цитата
Анатолий Ким пишет:
Если у вас в детальном просмотре передается ID элемента инфоблока или что-то ещё что его может определить, воспользутейсь одной из функций вроде CIBlockElement::GetElementByID, которая найдет нужный вам элемент по ID.


Огромное спасибо, Анатолий, за ответ!

А где можно прочитать про функции типа CIBlockElement::GetElementByID и как их использовать?
ответил 28 Авг, 14 от ELVIS (100 баллов)
00 голосов
А я не понял ответа.

Есть форма, я ее пуликую на странице детального просмотра чего-нибудь (новость, событие и т.д.) detail.pgp?ID=22
с помощью компонента:
Код
<?$APPLICATION->IncludeComponent("bitrix:form.result.new", ".default", Array(
   "WEB_FORM_ID"   =>   "5",
   "IGNORE_CUSTOM_TEMPLATE"   =>   "N",
   "SEF_MODE"   =>   "N",
   "SEF_FOLDER"   =>   "/",
   "CACHE_TYPE"   =>   "N",
   "CACHE_TIME"   =>   "3600",
   "LIST_URL"   =>   "result_list.php",
   "EDIT_URL"   =>   "result_edit.php",
   "SUCCESS_URL"   =>   "",
   "CHAIN_ITEM_TEXT"   =>   "",
   "CHAIN_ITEM_LINK"   =>   "",
   "VARIABLE_ALIASES"   =>   array(
      "WEB_FORM_ID"   =>   "WEB_FORM_ID",
      "RESULT_ID"   =>   "RESULT_ID",
   )
   )
);?>


В форме есть скрытое поле.

Тут же в detail.php я могу получить из $_REQUEST[ID] всю нужную информацию по элементу.

А как мне ее запихать в скрытое поле формы?

Работать с событием onFormValidatorBuildList ?
ответил 03 Янв, 15 от Siemka (1,020 баллов)
00 голосов
Не знаю, самый ли это простой путь, но я решил задачу через новые события модуля веб-форм.

Код
function my_onAfterResultAddUpdate($WEB_FORM_ID, $RESULT_ID)
{
   // действие обработчика распространяется только на форму с ID 5 или 4
   if ($WEB_FORM_ID == 5 || $WEB_FORM_ID == 4) 
   {
      // запишем в дополнительное поле 'user_ip' IP-адрес пользователя
      CFormResult::SetField($RESULT_ID, 'user_ip', $_SERVER["REMOTE_ADDR"]);


      if($_REQUEST["ID"])
      {

         $res = CIBlockElement::GetList(Array(), Array("ID"=>$_REQUEST["ID"]), false, false, Array());
         $ob = $res->GetNextElement();
         $arFields = $ob->GetFields();
         $arProperty = $ob->GetProperty("hosting");
         

         // инициализируем поля формы значениями
         CFormResult::SetField($RESULT_ID, 'name', $arFields['NAME']);
         CFormResult::SetField($RESULT_ID, 'hosting', $arProperty["VALUE"]);
         CFormResult::SetField($RESULT_ID, 'url', "http://". SITE_SERVER_NAME. $arFields["DETAIL_PAGE_URL"]);


      }
   }                                    
}

// зарегистрируем функцию как обработчик двух событий
AddEventHandler('form', 'onAfterResultAdd', 'my_onAfterResultAddUpdate');
AddEventHandler('form', 'onAfterResultUpdate', 'my_onAfterResultAddUpdate');



Разработчикам, спасибо, за новые события! smile:-)
ответил 21 Апр, 15 от Siemka (1,020 баллов)

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

0 голосов
4 ответов
спросил 17 Июль, 13 от Rizida (120 баллов)
0 голосов
9 ответов
0 голосов
4 ответов
спросил 21 Ноя, 13 от Zouma (120 баллов)
0 голосов
8 ответов
спросил 24 Июнь, 13 от Snezhka (2,240 баллов)
0 голосов
3 ответов
спросил 26 Март, 14 от MiRA (100 баллов)