TV checkbox и Tickets

Всем привет! Делаю что-то типа доски объявлений посредством Tickets.
Нужно в TicketForm вывести 20 чекбоксов через TV (множественный выбор)
Структура примерно следующая:
<label for="assist">Ассистент</label>
    <input type="checkbox" name="assist" id="assist">
    <label for="visage">Визажист</label>
    <input type="checkbox" name="visage" id="visage">
    <label for="style">Стилист</label>
    <input type="checkbox" name="style" id="style">
Выбранные должны падать в ticket…
Не как не допру как реализовать.)
Подскажите плз, может кто сталкивался с подобной задачей.
Спасибо!
Alexander
03 апреля 2019, 08:43
modx.pro
966
0

Комментарии: 1

Эрадж Шамс
01 октября 2020, 23:02
0
Привет.Ну я так решил задачу
Создаем сниппет TVcheckbox
<?php
$tv = $modx->getObject('modTemplateVar', array('name' => $name));
$elements = $tv->get('elements');
$element = explode('||', $elements);
foreach($element as $e) {
  list($elName,$elId) = explode("==", $e);
  if ($elId == $input) {
    $checked = 'checked';
  } else {
    unset($checked);
  }
  echo '<input type="checkbox" name="'.$name.'[]" id="ticket-'.$name.'-'.$elId.'" value="'.$elId.'" '.$checked.' >
<label for="ticket-'.$name.'-'.$elId.'">'.$elName.'</label>';
}
А в чанке вывода TicketForm выводишь TV так [[+TVпараметр:TVcheckbox]]

Только есть нюанс: когда выделяешь несколько галочек при обновлении эти галочки пропадают (хотя в базу они записались). Если ничего не трогать, они не перезапишутся при сохранении, но если поставить, скажем, одну галочку, то другие слетят. Не знаю ока как решить эту задачу
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1