Множественный выбор Checkbox'ов

Здравствуйте, появилась необходимость использование Checkbox'ов в Tickets.
Идея состоит в том чтобы при создании нового тикета можно было выбрать несколько Checkbox'ов.
Пример, при создании тикета нужно выбрать жанры относящиеся к книге.

<input type="hidden" name="jenrebook" value="" />
<div class="checkbox">
	<label>
		<input type="checkbox" name="jenrebook[]" value="Психология" [[+jenrebook:is=`Психология`:then=`checked="true"`:else=``]]>
                    Психология
	</label>
	<label>
		<input type="checkbox" name="jenrebook[]" value="Фантастика" [[+jenrebook:is=`Фантастика`:then=`checked="true"`:else=``]]>
                    Фантастика
	</label>
	<label>
                <input type="checkbox" name="jenrebook[]" value="Детективы" [[+jenrebook:is=`Детективы`:then=`checked="true"`:else=``]]>
                    Детективы
	</label>
</div>
Николай DELETE
30 августа 2016, 05:07
modx.pro
4
4 152
0

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

Василий Столейков
30 августа 2016, 16:03
2
+2
А в чём собственно вопрос-то?
Как сохранить данные из чекбокса в тв-шку jenrebook?

Создаёшь плагин на событие OnDocFormSave и радуешься жизни:
<?php
if($resource->class_key == 'Ticket' && $modx->event->name == 'OnDocFormSave' && $modx->context->key != 'mgr'){

    if(!empty($_POST['jenrebook'])) {
        $jenrebook = implode('||',$_POST['jenrebook']);
    	if (!$resource->setTVValue('jenrebook', $_POST['procent'])) {
    		$modx->log(xPDO::LOG_LEVEL_ERROR, 'jenrebook - ERROR');
    	}       
    } else {
    	if (!$resource->setTVValue('jenrebook', '') ) {
    		$modx->log(xPDO::LOG_LEVEL_ERROR, 'jenrebook - ERROR');
    	}       
    }
    $modx->cacheManager->refresh();
}
    Николай DELETE
    30 августа 2016, 17:58
    0
    Благодарю! Утром попробую в действии.
      Антон
      23 августа 2022, 14:47
      0
      как добавить валидацию заполнения хотя бы одного чекбокса? и что такое $_POST['procent']?
        Антон
        23 августа 2022, 14:59
        0
        проверил на своем примере такой код. Форма отпарвляется только если убрать из TicketForm вообще &validate.
        Ни &validate=jenrebook:required[] ни &validate=jenrebook:required не позволяет отправить форму в принципе
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4