TicketForm поле select
День добрый сообщество.
Подскажите пожалуйста, использую компонент Ticket, а именно сниппет: TicketForm в чанке создания &tplFormCreate и редактирования &tplFormUpdate решил использовать ТВ с типом список одиночной выборки.
Имя ТВ к примеру wheel с возможными значениями Левый==Левый||Правый==Правый, в чанках создания и редактирования вывожу примерное такую конструкцию:
где tvValue сниппет взятый за основу вот из этого источника
код сниппета
Возможно кто то сталкивался с данным вопросом и он был решен подобным или иным способом…
За ранее очень благодарен!
Подскажите пожалуйста, использую компонент Ticket, а именно сниппет: TicketForm в чанке создания &tplFormCreate и редактирования &tplFormUpdate решил использовать ТВ с типом список одиночной выборки.
Имя ТВ к примеру wheel с возможными значениями Левый==Левый||Правый==Правый, в чанках создания и редактирования вывожу примерное такую конструкцию:
<select name="wheel" class="form-control" id="ticket-wheel">
[[+wheel:tvValue]]
</select>
…код сниппета
<?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>
Возможно кто то сталкивался с данным вопросом и он был решен подобным или иным способом…
За ранее очень благодарен!
Комментарии: 7
Что-то Вы напутали, этот сниппет выводит одно конкретное значение.
Попробуйте так:
<?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>';
}
Спасибо огромное работает как нужно, ток есть небольшой нюанс.., Допустим был выбран 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>';
}
Огромаднийшее спасибо!!!!, рубит как нужно!!!
Понаглею еще чутка, а с checkbox аналогичная ситуация?
Понаглею еще чутка, а с checkbox аналогичная ситуация?
Здравствуйте подскажите а как быть с множественным выбором?
Здравствуйте, вроде получилось. Правда я переработал в checkbox. Сниппет checkbox
И вторая проблема: если я попытаюсь снять галочку, ничего не происходит. Как отправить снятие галочки?
Спасибо за этот вариант! из всех, которые я перепробовал — с этим удалось зайти дальше всего) если решу 2 эти вопроса — то выложу рабочий вариант редактирования через ticketform tv-параметра множественного выбора 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
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.