Вход • Регистрация

Заменить список select на переключатель input type="radio"

  • 21 августа 2023 г. , редакция: 21 августа 2023 г.
  • Всем привет!
    Помогите пожалуйста, нужно что-бы вместо списка был переключатель у характеристик влияющих на цену.
    В файле shop.view.buy_form нужно вот этот код поменять:
    Код

    $select = '';
    foreach ($param["values"] as $value)
    {
    if(! empty($result["row"]["param_multiple"][$param["id"]][$value["id"]]))
    {
    if(! $select)
    {
    $select =
    '<div class="field-d">
    <label class="field-d__name">'.$param["name"].'</label>
    <select data-id="'.$param["id"].'" name="param'.$param["id"].'" class="inpselect'.($result["row"]["param_multiple"][$param["id"]][$value["id"]] == 'depend' ? ' js_shop_depend_param' : '').'">';
    }
    $select .= '<option value="'.$value["id"].'"'
    .(! empty($value["selected"]) ? ' class="js_form_option_selected" selected' : '')
    .'>'.$value["name"].'</option>
    ';
    }
    }
    if($select)
    {
    echo $select.'</select>';
    }

    или может у кого есть готовый файл?
    Версия ЦМС 7
  • 21 августа 2023 г. , редакция: 21 августа 2023 г.
  • День добрый!

    я как лентяй не стал изобретать что-то глобальное а пошёл по такому пути :
    поставил на <SELECT> стиль -> display: none;
    и ниже в цикле сделал <div> добавил onclick по которому менять выбор в <SELECT>

    Вот - С покраской - Без покраски
    https://clck.ru/35Paca
    https://clck.ru/35Pb4P

    • 25 августа 2023 г.
    • Отправьте, пожалуйста свой файл shop.view.buy_form
      • 25 августа 2023 г. , редакция: 25 августа 2023 г.
      • Если в замен <SELECT> Использовать (<ul>+<li> или <div> или <input> - что удобней)
        механизм выбора модификаций не заработает на том JS коде который у Вас в шаблоне (у меня фаил JS и CSS ещё к этому механизму....)
        надо написать JS функцию которая будет проверять Выбор у SELECT и применять Стили к (<ul>+<li> или <div> или <input>) и обратно передавать в SELECT выбранный <option> на основы события по одному из (<ul>+<li> или <div> или <input>)

        я бы выбрал UL+LI (позволит масштабировать если у товара будет не одна характеристика а две или три влияющих на цену)

        Код

        {
        $select = '';
        $param_but = '';

        foreach ($param["values"] as $value)
        {
        if(! empty($result["row"]["param_multiple"][$param["id"]][$value["id"]]))
        {
        if(! $select)
        {
        $select =
        '<div class="field-d">
        <label class="field-d__name">'.$param["name"].'</label>
        <select id="param'.$param["id"].'_sel_'.$result["row"]["id"].'" style="display: none;" name="param'.$param["id"].'" class="inpselect'.($result["row"]["param_multiple"][$param["id"]][$value["id"]] == 'depend' ? ' js_shop_depend_param' : '').'">';

        // Добавил генерацию кнопок
        $param_but =
        '<ul id="param'.$param["id"].'_ul_'.$result["row"]["id"].'" name="param'.$param["id"].'" costtov="cost_'.$result["row"]["id"].'" tovid="'.$result["row"]["id"].'" class="params_buttons">';
        }

        $select .= '<option value="'.$value["id"].'"'
        .(! empty($value["selected"]) ? ' class="js_form_option_selected" selected' : '')
        .'>'.$value["name"].'</option>
        ';

        $param_but .= '<li onclick="change_purchase_state(this)"'.(! empty($value["selected"]) ? ' class="param_but_act"' : ' class="param_but"').' value="'.$value["id"].'">'.$value["name"].'</li>';
        }
        }
        if($select)
        {
        echo $select.'</select>';

        echo $param_but.'</ul>';

        echo '</div>';
        }
        }
        • 25 августа 2023 г.
        • Спасибо за подробный ответ!)
        • 06 сентября 2023 г.
        • Цитата
          надо написать JS функцию которая будет проверять Выбор у SELECT и применять Стили к (+ или или ) и обратно передавать в SELECT выбранный на основы события по одному из (+ или или )

          Будьте добры поделитесь вашим скриптом JS функции этой ))

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.