Последние темы


Несколько значений checkbox для Formit

  • Продолжение связано с предыдущим вопросом Изменения товара на внешней части сайта modx

    • Как сделать так чтобы formit принимал несколько значений checkbox?
      есть вызов formit:
    [[!FormIt?  
        &hooks=`shopContent,redirect`
        &redirectTo=`15`
        &validate=`whom:required`
    

    и сама форма:

    <div class="form-group">
        <label for="whom" class="control-label">Для кого</label><br>
        <label class="checkbox-inline">
            <input type="checkbox" id="whom" name="whom" value="#Женщине#" > Женщине
        </label>
        <label class="checkbox-inline">
            <input type="checkbox" id="whom" name="whom" value="#Любимой#" > Любимой
        </label>
        <label class="checkbox-inline">
            <input type="checkbox" id="whom" name="whom" value="#Семье#" > Семье
        </label>
    </div>
    

    при выборе всех 3 значений должно получится значения поля whom:

    #Женщине#||#Любимой#||#Семье#
    

    По итогу сохраняется только 1 параметр, если выбрать все то последний только сохраняется

    • И второй вопрос. как сделать чтобы он отображал что уже установлено?
      делал If:
    [[!If? &subject=`[[!+whom]]` &operator=`IA` &operand=`#Женщине#` &then=`checked`]]
    

    и в самом сниппете менял значение:

    case 'ia':
       $operand = explode('||',$operand);
    

    Но ничего не вышло. Изменить разделить для проверки содержимого в строчке.
    Пытался изучить статью про Formit
    Что то вроде это делал:

    [[!+fi.whom:FormItIsChecked=`#Женщине#`]]
    

    Но ничего не вышло.

  • со вторым вопросом я разобрался, отображение уже установленных флажков

    [[!If? &subject=`#Женщине#` &operator=`ia` &operand=`[[!+whom:replace=`||==,`]]` &then=`checked`]]
    
 

Последние комментарии

  • A

    Участник @Andchir написал в CatalogFill и filter_export:

    нужно через разделитель || сделать 2 столбца и т.д.

    Создаете дополнительную колонку (можно несколько) после ТВ, значение которого нужно разделить. ID ТВ для такой колонки можно указать, тот которого не существует.

    //разбивка по столбцам при импорте и экспорте (content|tv|category) $cf_config['content_row'] = array( ... array('Параметры товара', array(2, 'tv')), array('Параметры товара - вторая колонка', array(2000, 'tv'))// Дополнительная колонка в экселе );

    Далее в конфигурационном файле разделяете с помощью функции filter_export().

    //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr, $doc_id=0){ $output_arr = $value_arr; if(!empty($output_arr[2])) { $tmp = explode('||', $output_arr[2]);// Разделяем строку, получаем массив if (count($tmp) >= 2) { $output_arr[2] = $tmp[0]; $output_arr[2000] = $tmp[1]; } } return $output_arr; }

    работает отлично, спасибо

    Читать далее
  • нужно через разделитель || сделать 2 столбца и т.д.

    Создаете дополнительную колонку (можно несколько) после ТВ, значение которого нужно разделить. ID ТВ для такой колонки можно указать, тот которого не существует.

    //разбивка по столбцам при импорте и экспорте (content|tv|category) $cf_config['content_row'] = array( ... array('Параметры товара', array(2, 'tv')), array('Параметры товара - вторая колонка', array(2000, 'tv'))// Дополнительная колонка в экселе );

    Далее в конфигурационном файле разделяете с помощью функции filter_export().

    //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr, $doc_id=0){ $output_arr = $value_arr; if(!empty($output_arr[2])) { $tmp = explode('||', $output_arr[2]);// Разделяем строку, получаем массив if (count($tmp) >= 2) { $output_arr[2] = $tmp[0]; $output_arr[2000] = $tmp[1]; } } return $output_arr; }

    Читать далее
  • A

    @Andchir еще хотел спросить, как можно реализовать разделение столбцов при экспорте тип ввода ТВ param-edit, в экселе выводит видalt text нужно через разделитель || сделать 2 столбца и т.д., я понимаю что нужно через filter_export, можете подсказать, спасибо

    Читать далее
  • Покажите скриншот, чтобы было видно что вы вводите в значение по умолчанию.

    Читать далее