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

Как проверить какому пользователю принадлежит результат web-формы?

00 голосов
3
Добрый День!

Подскажите пожалуйста как проверить какому пользователю принадлежит результат формы?
Суть задачи такова, вывести список web-форм на страницу, и если какая то форма заполнена у пользователя, то рядом сообщение (заполнена), если нет то (не заполнена)
Делаю вот так, но не работает:
Код
if (CModule::IncludeModule('form'))
   {
      $arFilter = Array(
         "SID"               =>"FORM_UCHMET_%",
         "USER_ID"              => $USER->GetID(),
         "USER_ID_EXACT_MATCH"  => "Y",
         "USER_AUTH"            => "Y",
      );
      
      $rsForms = CForm::GetList($by="s_id", $order="desc", $arFilter, $is_filtered);
         while ($arForm = $rsForms->Fetch())
         {
         if ($form_res = CFormResult::GetList($by="s_user_id") ? " (заполнена)" : " (не заполнена)";
            echo '<ul><li><a href="/tmp/anketa/'.$arForm["ID"].'/">'.$arForm["NAME"].'</a><strong>'.$form_res.'</strong></li></ul>';
         }
   }
спросил 03 Июль, 13 от Chemikals (840 баллов)

3 Ответы

00 голосов
А комплексный компонент bitrx:form Вашу задачу не решает? Если нет - тогда вот:
Цитата

$rsFormResult = CFormResult::GetList(ID_формы,($by="s_timestamp"), ($order="desc"), array('USER_ID' => $USER->GetID()));
if ($arFormResult = RsFormResult->Fetch())
{
// отвечал
}

Речь идет об авторизованном пользователе.
ответил 03 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Вроде работает, но не правильно!То есть выполняет только то что после else. Получается что все формы у меня не заполнены. Хотя 3 из 6 заполнены
Сделал так:

Код
if (CModule::IncludeModule('form'))
   {
      $arFilter = Array(
         "SID"               =>"FORM_UCHMET_%",
         "USER_ID"              => $USER->GetID(),
         "USER_ID_EXACT_MATCH"  => "Y",
         "USER_AUTH"            => "Y",
      );
      
      $rsForms = CForm::GetList($by="s_id", $order="desc", $arFilter, $is_filtered);
         while ($arForm = $rsForms->Fetch())
         {
         $rsFormResult = CFormResult::GetList($FormID,($by="s_timestamp"), ($order="desc"), array('USER_ID' => $USER->GetID()));
         if ($arFormResult = $RsFormResult->Fetch())
         {
            echo '<ul><li><a href="/tmp/anketa/'.$arForm["ID"].'/">'.$arForm["NAME"].'</a><strong>''заполнена''</strong></li></ul>';
         }
         else
         {
            echo '<ul><li><a href="/tmp/anketa/'.$arForm["ID"].'/">'.$arForm["NAME"].'</a><strong>''не заполнена''</strong></li></ul>';
         }
   }
ответил 09 Авг, 13 от Chemikals (840 баллов)
00 голосов
Разобрался! Евгений Спасибо большое!Все прекрасно работает!А стандартный компонент тут не поможет!Задача сделать подобие списка форм для сбора информации с пользователя. Тут все придется только через API делать!
ответил 09 Ноя, 13 от Chemikals (840 баллов)

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

0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
6 ответов
0 голосов
1 ответ
спросил 02 Окт, 22 от root (25,590 баллов)