TicketForm поле select

День добрый сообщество.
Подскажите пожалуйста, использую компонент Ticket, а именно сниппет: TicketForm в чанке создания &tplFormCreate и редактирования &tplFormUpdate решил использовать ТВ с типом список одиночной выборки.
Имя ТВ к примеру wheel с возможными значениями Левый==Левый||Правый==Правый, в чанках создания и редактирования вывожу примерное такую конструкцию:
<select name="wheel" class="form-control" id="ticket-wheel">
[[+wheel:tvValue]]
</select>

где tvValue сниппет взятый за основу вот из этого источника
код сниппета
<?php
$tv = $modx->getObject('modTemplateVar', array('name' => $name));
$elements = $tv->get('elements');
$element = explode('||', $elements);
$els = array();
foreach($element as $e) {
  list($elName,$elId) = explode("==", $e);
  $els[$elId] = $elName;
}
echo $els[$input];
по итогу на выходе (во фронте) код страниц создания, редактирования должен быть такой:

<select name="wheel" class="form-control" id="ticket-wheel">
<option value="Левый">Левый</option >
<option value="Правый">Правый</option>
</select>

Возможно кто то сталкивался с данным вопросом и он был решен подобным или иным способом…
За ранее очень благодарен!
Дмитрий Середюк
24 августа 2015, 11:14
modx.pro
2
1 904
0

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

Дмитрий Кондаков
24 августа 2015, 17:38
0
Что-то Вы напутали, этот сниппет выводит одно конкретное значение.
    Дмитрий Кондаков
    24 августа 2015, 17:45
    +2
    Попробуйте так:
    <?php
    $tv = $modx->getObject('modTemplateVar', array('name' => $name));
    $elements = $tv->get('elements');
    $element = explode('||', $elements);
    foreach($element as $e) {
      list($elName,$elId) = explode("==", $e);
      echo '<option value="'.$elId.'">'.$elName.'</option>';
    }
      Дмитрий Середюк
      24 августа 2015, 19:03
      +1
      Спасибо огромное работает как нужно, ток есть небольшой нюанс.., Допустим был выбран 2й вариант Правый тогда как при редактирование данного поля по дефолту стоит Левый, а правильно бы было что бы стояло сохраненное значение Правый, подскажите пожалуйста как добить данный вариант.
        Дмитрий Кондаков
        24 августа 2015, 19:25
        +2
        Как-то так:
        <?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) {
            $selected = ' selected="selected"';
          } else {
            unset($selected);
          }
          echo '<option value="'.$elId.'"'.$selected.'>'.$elName.'</option>';
        }
          Дмитрий Середюк
          24 августа 2015, 20:23
          +1
          Огромаднийшее спасибо!!!!, рубит как нужно!!!
          Понаглею еще чутка, а с checkbox аналогичная ситуация?
            eflit
            15 февраля 2018, 19:04
            0
            Здравствуйте подскажите а как быть с множественным выбором?
              Эрадж Шамс
              28 мая 2020, 12:09
              0
              Здравствуйте, вроде получилось. Правда я переработал в checkbox. Сниппет checkbox
              <?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>';
              }
              На странице редактирования вывожу
              [[+naturale:checkbox]]
              Галочки выводятся, результаты проставляются. Ставлю одну галочку, сохраняю, обновляю, галочка стоит! И вот тут две проблемы: если я поставлю еще одну галочку и выберу два или больше вариантов, то checked исчезает у всех, то есть как будто ничего не проставлено, хотя на самом деле в базе они стоят.

              И вторая проблема: если я попытаюсь снять галочку, ничего не происходит. Как отправить снятие галочки?

              Спасибо за этот вариант! из всех, которые я перепробовал — с этим удалось зайти дальше всего) если решу 2 эти вопроса — то выложу рабочий вариант редактирования через ticketform tv-параметра множественного выбора checkbox
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7