Помощь Вывод значения опции напротив названия товара

Тема в разделе "Opencart", создана пользователем Chadik, 19 фев 2020.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
  1. Chadik

    Chadik Постоялец

    Регистр.:
    25 апр 2013
    Сообщения:
    97
    Симпатии:
    22
    Подскажите как вывести значение опции в карточке товара напротив названия товара (пример сайта)
    Если менять выбранную опцию, то она автоматически дописывается напротив названия h1
     
  2. Denzy

    Denzy Постоялец

    Регистр.:
    29 июл 2016
    Сообщения:
    57
    Симпатии:
    50
    Здравствуйте.
    Что бы не было перезагрузки страницы, подставляйте через JS к заголовку
    Код:
    <?php echo $option_value['name']; ?>
    /catalog/view/theme/default/template/product/product.tpl

    Но вам сначала нужно с помощью js получить значение выбранной опции, а потом вывести с помощью того же JS куда вам нужно.
    К сожалению с JS вам подсказать не смогу, так как плохо знаком и писать его нужно индивидуально под ваш шаблон
     
    Последнее редактирование: 20 фев 2020
    Chadik нравится это.
  3. Chadik

    Chadik Постоялец

    Регистр.:
    25 апр 2013
    Сообщения:
    97
    Симпатии:
    22
    А Вы можно пожалуйста по конкретнее расписать в какой файл подставлять?
     
  4. artkvadrart

    artkvadrart Создатель

    Регистр.:
    3 фев 2020
    Сообщения:
    47
    Симпатии:
    11
    Уточните версию ОпенКарта (если 3 то будет не tpl, а twig) и используете ли шаблон? Вдруг объектная модель сильно отличается от стандартной.
     
  5. Chadik

    Chadik Постоялец

    Регистр.:
    25 апр 2013
    Сообщения:
    97
    Симпатии:
    22
    Магазин на ocStore 1.5.5.1.2, шаблон BigDesign. Может есть готовое решение в виде модуля, или надо все ручками допиливать?
     
  6. artkvadrart

    artkvadrart Создатель

    Регистр.:
    3 фев 2020
    Сообщения:
    47
    Симпатии:
    11
    Можно так.

    В файле (/catalog/view/theme/default/template/product/product.tpl) в необходимые опции (или во все) добавить:
    onchange="changeH1('<?php echo $option_value['name']; ?>')"

    Пример:
    Было:
    <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
    Стало:
    <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" onchange="changeH1('<?php echo $option_value['name']; ?>')" />
    ------------------------------------------------------------------------------------------------------------
    И в конце в этом же файле (/catalog/view/theme/default/template/product/product.tpl) перед <?php echo $footer; ?> добавить скрипт:

    <script><!--
    const CIDH1=document.querySelector("H1").innerHTML;
    function changeH1(option) {
    document.querySelector("H1").innerHTML = CIDH1 + ' ' + option;
    }
    //--></script>
     
    Последнее редактирование: 7 мар 2020
    Chadik нравится это.
  7. Chadik

    Chadik Постоялец

    Регистр.:
    25 апр 2013
    Сообщения:
    97
    Симпатии:
    22
    Сделал как Вы подсказали, пока без результата. К каким опция еще можно попробовать добавить onchange="changeH1('<?php echo $option_value['name']; ?>')"
     
  8. artkvadrart

    artkvadrart Создатель

    Регистр.:
    3 фев 2020
    Сообщения:
    47
    Симпатии:
    11
    Какой тип опций вы используете?


    Если Select попробуйте так:
    onchange="changeH1N1(document.getElementById('input-option<?php echo $option['product_option_id'];?>').options.selectedIndex);"

    Было:
    <select name="option[<?php echo $option['product_option_id']; ?>]"
    id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" >
    Стало:
    <select name="option[<?php echo $option['product_option_id']; ?>]"
    id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"
    onchange="changeH1N1(document.getElementById('input-option<?php echo $option['product_option_id'];?>').options.selectedIndex);" >

    ------------------------------------------------------
    Скрипт файл будет такой

    <script><!--
    const CIDH1=document.querySelector("H1").innerHTML;

    function changeH1(option) {
    document.querySelector("H1").innerHTML = CIDH1 + ' ' + option;
    }

    function changeH1N1(option) {
    let option1 = document.getElementById("input-option<?php echo $option['product_option_id']; ?>").options[option].text;
    document.querySelector("H1").innerHTML = CIDH1 + ' ' + option1;
    }
    //--></script>
     
    Последнее редактирование: 7 мар 2020
    Chadik нравится это.