партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Свойства-таблицы».
Страницы: 1
Ответить
RSS
как вносить значения в таблицу ?, CIBlockElement::SetPropertyValuesEx
 
$PROPERTY_VALUE=array('znach'=>'1');
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array($CODE_PROP => array('VALUE'=>serialize($PROPERTY_VALUE),'DESCRIPTION'=>'') ) );не работает.
 
Гость,  serialize тут не нужен, в качестве значения указывайте массив для каждой строки с ключами, соответствующими идентификаторам столбцов.

В остальном, если таблица множественная, действуют обычные правила для множественных свойств. Т.е. одна строка таблицы соответствует одному значению множественного свойства.

Если таблица немножественная, то этот массив соответствует значению.

Здесь есть пример: http://g-rain-design.ru/components/tables/help/#saving-table-through-bitrix-api
 
Цитата
Сергей Эстрин написал:
Здесь есть пример: http://g-rain-design.ru/components/tables/help/#saving-table-through-bitrix-api
Добрый день!
Возник вопрос, как вносить данные в таблицу, которая находится в профиле пользователя?

Интересует именно способ обновления/добавления через api, т.к. ваш модуль купили ранее, а теперь используем его для хранения пользовательских планов=) Данные в поля уже сформированы(все разложено )
по переменным, т.е. то, что должно попасть в упражнение лежит в одно переменной и т.д., есть даже порядковый номер записи из массива получаемого.
 
Вот лишний раз поднял панику, почитал справку, вроде сохраняет. Только есть одно но, при обновлении сохраняется только одна строка, которая указана в массиве, это каждый раз придется передавать все данные?
Изменено: Дмитрий Новоселов - 14.04.2017 06:07:40
 
И снова я отвечаю сам на свои вопросы) Сильно не пинайте, в общем для обновления поля приходится создать необходимый массив и изменить необходимые данные) Нужно будет еще дописать добавление элемента.. На коде ниже обновляется таблица в дополнительных свойствах профиля пользователя.
Код

$rsinfoUser CUser::GetByID($_POST["userId"]);

$user = new CUser;
$aFields;
                while(
$arinfoUser $rsinfoUser->Fetch())
               {   
                  
$i=0;
                  foreach (
$arinfoUser[UF_PLAN] as $explodestring)
                  {
                     
$pieces0 explode('a:2:{s:8:"exercise";s:'$explodestring);
                     
$pieces1 explode('";}'$pieces0[1]);
                     
$pieces2 explode('";s:4:"date";s:10:"'$pieces1[0]);
                     
$pieces preg_split('/^[0-9]+:"/'$pieces2[0]);
                        if (
$pieces2[1]==$date)
                        {   
$ab=$i;
                           
                                  
$UF_PLAN[$ab] = array(         
                                        
'exercise'=>$a,
                                        
'date'=>$pieces2[1],
                                 );
                        }
                        else 
                        { 
//echo $i;
                           
$ab=$i;
                           
$UF_PLAN[$ab] = array(
                                        
'exercise'=>$pieces[1],
                                        
'date'=>$pieces2[1],
                                  );
                        }
                        ++
$i;
                        
                  }
                  
$aFields= array('UF_PLAN' => $UF_PLAN);
               }
                  
$user->Update($_POST["userId"], $aFields);
 
Не работает изменение - заполнение свойства через метод CIBlockElement::SetPropertyValuesEx, при этом  CIBlockElement::SetPropertyValueCode работает.

CIBlockElement::SetPropertyValueCode(565,"PRICE_FOR_SERVICES", $value);
  CIBlockElement::SetPropertyValuesEx(565, 5, ['PRICE_FOR_SERVICES' => $value]);  


array (  0 =>
   array (
       'NAME' => 'tatto',
       'PRICE' => '4444',
       FORM' => 'seans',
 ),
 '1' =>
   array (
       'NAME' => 'tattoage',
       'PRICE' => '55',
       'FORM' => 'seans',
 ),
)
 
Эмиль Ахаев, для начала попробуйте так (в некоторых местах у битрикса нужно использовать массив со значением в ключе VALUE):
Код

array (  

  
'0' => 
  array ( 
'VALUE' => array(
        
'NAME' => 'tatto',
        
'PRICE' => '4444',
        
'FORM' => 'seans',
  )),
  
'1' => 
    array ( 
'VALUE' => array(
        
'NAME' => 'tattoage',
        
'PRICE' => '55',
        
'FORM' => 'seans',
  )),
)
И обратите внимание на ключи здесь http://g-rain-design.ru/components/tables/help/#saving-table-through-bitrix-api ('n0', 3265). Это для множественных свойств - ID значения свойства. Если их не использовать, значение в базе будет каждый раз удаляться и создаваться с новым ID (хотя это и не очень страшно).
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки