1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

W TRAKCIE Dodatkowe pola tekstowe po wybraniu wariantu

Dyskusja w 'Sklep internetowy eSklep' rozpoczęta przez użytkownika likocki.pl, 25 Wrzesień 2017.

  1. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    Cześć,

    na swojej stronie przy kilku produktach mam opcję personalizacji. Produkty te mają warianty: Zwykły i personalizowany. I tera chciałbym zrobić tak, że jak klient wybirze produkt personalizowany to wyskoczą dwa dodatkowe pola "Tekst presonalizowany" oraz możliwość przesłania pliku graficznego.

    Czy da się to zrobić bez większych kombinacji?
     
  2. Grzesiek

    Grzesiek Centrum Pomocy home.pl Administrator forum

    Wiadomości:
    3 594
    Docenione treści:
    329
  3. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    Dziękuję za wiadomość. Nie wiem czy dobrze się zrozumieliśmy. Mam już utworzone wszystkie warianty i cechy. Problem polega na tym, że wszystkie cechy wyświetlają się na raz (pole select, pole tekstowe i pole do wgrania pliku). Tylko, że pole tekstowe i pole do wgrania pliku dotyczą tylko sytuacji, w której ktoś wybierze odpowiednią pozycję z pola select.

    Pokażę to na żywym organizmie. https://www.likocki.pl/pl/p/Likocki-Letters-Premium-PLUS/82 - pod ceną widać wszystkie warianty (Kasetka, Tekst personalizacji (jeśli wybrano), Grafika personalizacji (jeśli wybrano)). Dwie ostatnie cechy dotyczą tylko sytuacji, w której ktoś wybierze kasetkę personalizowaną. Chciałbym, żeby te pola były niewidoczne do momentu, w którym ktoś nie wybierze w polu "kasetka" opcji "personalizowana".

    Z góry dziękuję za odpowiedź.

    PS. Przepraszam za "zjedzone" literki w pierwszym poście. Da się to jakoś edytować? :)
     
  4. Grzesiek

    Grzesiek Centrum Pomocy home.pl Administrator forum

    Wiadomości:
    3 594
    Docenione treści:
    329
    No to tak, to będzie problem, bo faktycznie nie ma czegoś takiego jak zagnieżdżenie wariantów w wariancie.

    Czyli wariant A, cecha 1 cecha 2, wariant B, cecha 3, cecha 4. Zawsze widać wszystko.

    Zostaje więc albo dodanie pola tekstowego (edycja zaawansowana, pliki .tpl) z krótkim opisem (tylko że to się wyświetli wszędzie), albo dodanie w opisie produktu lub jako strona informacyjna, osobnej instrukcji, jeśli wybierasz gotowca, no to masz gotowca, jeśli spersonalizowany to pamiętaj dodać plik, itp..

    wystawię zgłoszenie.sugestię FEEDBACK-1291
     
  5. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    Dziękuję za zainteresowanie się tematem i odpowiedź. Zastanawiam się nad tym czy nie dałoby się tego wykonać jakimś prostym if-em w JS? Na zasadzie "jeżeli pole select równa się personalizowana to: wyświetl pole tekstowe, wyświetl pole wgrania pliku; w przeciwnym razie nic nie rób" (nie znam się na składni JS, dlatego opisałem to słowami). Miałoby to szansę bytu? Odnosiłby się ten kod tylko do produktów, które korzystają z tego zestawu wariantów.
     
  6. Grzesiek

    Grzesiek Centrum Pomocy home.pl Administrator forum

    Wiadomości:
    3 594
    Docenione treści:
    329
    Tak. Miało by na pewno szansę bytu, ale tu moje wsparcie się kończy. Kilka razy na forum pojawiały się różne opcje, np. uzależnienie wyświetlania informacji od wersji językowej (moduły z banerami np.) lub wyświetlanie kosztów dostawcy (sugerowane OD XXX zł) w zależności od kategorii produktu (jeśli dobrze pamiętam). Więc pewnie i to by się udało stworzyć.

    Może pomoc agencji interaktywnej była by tu rozwiązaniem @gabiec.pl może Wy?
     
  7. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 400
    Docenione treści:
    532
    hmmm, zobacz czy zadziała
    js
    Kod:
    var $select = $('select');
    $select.each(function() {
       $(this).addClass($(this).children(':selected').val());
    }).on('change', function(ev) {
       $(this).attr('class', '').addClass($(this).children(':selected').val());
    });
    
    css
    Kod:
    select, option { background: #fff; }
    select.foo, option[value="foo"] { background: red; }
    select.bar, option[value="bar"] { background: green; }
    
    oczywiście w value Twoje opcje
    nie wiem czy zadziała, nie testowałem :)
     
  8. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @likocki.pl w ramach wystawionego zgłoszenia o numerze: FEEDBACK-1291 otrzymałem informacje, że sugestia została odrzucona. Przyznam uczciwie, że tzw. zagnieżdżanie wariantów jest bardzo skomplikowaną modyfikacją i na ten moment nie planujemy jej wprowadzenia. Najprawdopodobniej w przyszłości pochylimy się nad nią ponownie, jeśli sugestia ta będzie się powtarzać wśród innych użytkowników.

    Spróbuj proszę z rozwiązaniem zaproponowanym przez użytkownika Thel powyżej. Może tym sposobem uda Ci się uzyskać opisany efekt.
     
  9. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    @Mariusz @TheL - bardzo dziękuję Wam za udzielenie się w moim temacie.

    @TheL niestety, nie bardzo sobie poradziłem z Twoją propozycją, albo efektu nie było.

    Aktualnie jest taka sytuacja:

    we własnym kodzie JS jest umieszczony kod:

    Kod:
    function choicefn(select){
          var val = select.options[select.selectedIndex].value;
        if(val==29)
          {
            document.getElementById('personalizationfirst').setAttribute('style', "display : initial");
            document.getElementById('personalizationsecond').setAttribute('style', "display : initial");
        }
          else
        {
         document.getElementById('personalizationfirst').setAttribute('style', "display : none");
         document.getElementById('personalizationsecond').setAttribute('style', "display : none");
        }
    }
    
    Zostało teraz ręcznie zmienić html dla każdej strony z produktem, który ma w ofercie personalizację. Trzeba edytować kod by wyglądał jak w załączonym obrazku (dodać id i onchange).

    Czy jest taka opcja, żebym sam umieścił te zmiany na stałe?
     

    Załączone pliki:

  10. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @likocki.pl sprawdzam dostępne możliwości (QA-45922), wrócę tutaj do tematu jak otrzymam informacje od specjalistów ds. Click Shop
     
    likocki.pl lubi to.
  11. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 400
    Docenione treści:
    532
    Tak, jest opcja, zrób edycję pliku tpl odpowiadającego za wyświetlenie produktu.
     
  12. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    @TheL - dzięki za odpowiedź. Przyznam szczerze, że nie mogę sobie z tym poradzić. Plik product/index.tpl jest chyba tym, który wyświetla produkty. Jednak użyte tam pętle uniemożliwiają mi właściwe umieszczenie kodu, w miejsca, na których mi zależy :(
     
  13. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 400
    Docenione treści:
    532
    a gdzie byś to dokładnie chciał?
     
  14. likocki.pl

    likocki.pl Początkujący

    Wiadomości:
    9
    Docenione treści:
    0
    @TheL, chciałbym zamienić kod html:

    Kod:
    <select id="option_9" name="option_9">== $0
        ...
    </div>
    <div class="f-row">
       ...
    </div>
    <div class="f-row">
    ...</div>
    
    na kod:
    Kod:
    <select id="option_9" name="option_9" onchange="choicefn(this);">== $0 
        ...
    </div>
    <div class="f-row" id="personalizationfirst" style="display : initial">
       ...
    </div>
    <div class="f-row" id="personalizationsecond" style=" display: initial">
    ...</div>
    
     
  15. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    W ramach wystawionego zgłoszenia: QA-45922, otrzymałem informacje, że wsparcie home.pl nie obejmuje takich modyfikacji. Napisałem wiadomość prywatną do użytkownika @TheL, może on będzie mógł tutaj coś doradzić.
     
  16. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 400
    Docenione treści:
    532
    Edytuj plik: product/index.tpl
    Linie: 245, 254
    możesz tam wcisnąć co chcesz, tylko pamiętaj, że to co jest teraz generuje opcje wszystkie, musiałbyś dodać jakiś wariant ręcznie lub zrobić ify w zależności od numeru opcji.
     

Poleć forum znajomym