Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W Smarty pole chcekbox i zwracana wartość w podsumowaniu
Forum PHP.pl > Forum > PHP
dnaielpro
Witam,
mam sklep oparty o Smarty.

W koszyku swojego sklepu chciałbym dodać dwa checkbox'y do wyboru (faktura vat / paragon).

Po wyborze jednej z dwóch opcji w podsumowaniu koszyka chciałbym żeby zwróciło informację co klient wybrał.

Obecnie na stronie koszyka zrobiłem:

  1.  
  2. <ul class="faktura">
  3. <br>
  4. <p><b><h5>Dokument potwierdzający zakup:</h5></b></p>
  5. <label><input type="checkbox" name="id[999]" value="999" />Faktura VAT</label>
  6. <label><input type="checkbox" name="id[998]" value="998">Paragon</label>
  7. </ul>
  8.  


Natomiast w podsumowaniu:

  1.  
  2. <li class="faktura">
  3. <span>
  4. {translate key='Dokument potwierdzający zakup'}:
  5. </span>
  6. </li>
  7.  


Czy ktoś mógłby mi powiedzieć, co należy do tego dodać, żeby działało poprawnie?

Domyślam się, że pierwszy kod z koszyka powinien wysyłać wartość do tabeli, a podsumowanie pobrać wartości jakie wysłano.
Z góry dziękuję za pomoc!
kapslokk
Przede wszystkim to chyba tutaj powinno być radio? Checkboxy umożliwiają zaznaczenie obu opcji, a Ty chcesz jedną, tak? A co do samego wyświetlenia to musisz po wybraniu opcji i przejściu dalej zapisać gdzieś co wybrał user i w podsumowaniu to odpowiednio przekazać do smartów i wyświetlić. Jak - nie wiem, nie znam Twojego sklepu smile.gif
dnaielpro
Masz rację, zależy mi na jednej opcji więc zmienię - dzięki!

Pytanie teraz tylko jak to gdzieś zapisać lub wysłać, a potem przywołać. Z tym mam problem...
kapslokk
1. Tworzysz/masz już stworzony w koszyku formularz, tam dodajesz pole radio tak jak do tej pory - co do nazwy bym się zastanowił - id[998] jest raczej dziwne biggrin.gif W każdym razie radio będzie miało jedną nazwę i dwie wartości więc do bazy/sesji/ciastka zapisujesz np $_POST['dokumentPotwierdzajacyZakup']. Pozniej w podsumowaniu pobierasz to z bazy i wstawiasz warunek/zmienna w templatce.
2. Przy zmianie możesz zapisywać to do ciastka/sesji/bazy np. ajaxem, pozniej przy podsumowaniu pobierać i jak wyżej bawić się w templatce.
dnaielpro
Ok, nie znam praktycznie php stąd moje pytania tutaj..

Obecnie zrobiłem tak jak radziłeś i jest ok:
  1. <form>
  2. <input type="radio" name="dokument" value="faktura">Faktura VAT
  3. <input type="radio" name="dokument" value="paragon" checked>Paragon
  4. </form>


No ale teraz $_POST mogę umieścić w tym samym pliku *.tpl? pomiędzy znacznikami php?
kapslokk
Skoro nie znasz w ogóle php to może lepiej najpierw się go troche poucz, albo zleć komuś innemu? w smartach było bodajże {$smarty.post.nazwa_zmiennej}.
dnaielpro
Uczę się metodą prób i błędów, a jeśli nie rozumiem "definicji" to pytam na forum smile.gif

Wykonanie sklepu zleciłem firmie, ale teraz chciałbym dodać jedną funkcjonalność.

Nie rozumiem, czy polecenie wysłania wyboru powinienem umieścić w samym <input> czy poniżej całej tabelki lub nawet w innym pliku.

Dodatkowo, w podsumowaniu zrobiłem tak:
  1. <li class="faktura">
  2. <span>
  3. {translate key='Dokument potwierdzający zakup'}:
  4. <strong class="delivery">{$dokument}</strong>
  5. </span>
  6. </li>


Lub czy powinno to wyglądać tak:
  1. <span>
  2. {translate key='Dokument potwierdzający zakup'}:
  3. <strong class="delivery">{if $dokument.faktura}<p>Faktura</p>{/if}</strong>
  4. </span>
kapslokk
Wg mnie lepiej wygląda:

  1. <li class="faktura">
  2. <span>
  3. {translate key='Dokument potwierdzający zakup'}:
  4. <strong class="delivery">{$dokument}</strong>
  5. </span>
  6. </li>

Pamiętaj tylko, że $dokument musisz przypisać w pliku PHP, czyli $smarty->assign("dokument", >>TWOJA WARTOSC << ); No i też musisz to sobie gdzieś przetłumaczyć. Nie kojarzę tego {translate...}, więc nie pomogę.
dnaielpro
Ok, podsumowanie powiedzmy, że mam ok - translate działa prawidłowo.

Nie bardzo wiem, jak mogę zrobić plik, gdzie to sobie przetłumaczę.. Oraz nie wiem, jak prawidłowo zbudować cały kod w pliku wyboru faktura/paragon.
Czy może mi ktoś pomóc w tej kwestii?
kapslokk
Bez znajomości całego Twojego kodu raczej Ci nikt nie pomoże - jest zbyt dużo możliwości.

Cytat
Uczę się metodą prób i błędów

To nie jest zbyt dobre podejście - jakieś podstawy trzeba mieć. O ile małą zmianę można tak wprowadzić, o tyle z czymś większym będzie problem.

Cytat
Oraz nie wiem, jak prawidłowo zbudować cały kod w pliku wyboru faktura/paragon.

Tak jak wyżej, nie masz podstaw - nie wiesz jak się za to zabrać. Nie licz na to, że ktoś Ci to napisze za darmo, a sam póki co nawet nie potrafisz zadać dobrego pytania. Nie myśl, że to złośliwość z mojej strony, ale po prostu to nie jest tak łatwe jak się wydaje, bez podstawowej znajomości języka wiele nie zdziałasz.
dnaielpro
Obecnie mam taki problem.
W pliku index.tpl mam taki kod:

  1. {php}
  2.  
  3. function formularz() {
  4.  
  5. ?>
  6.  
  7. <form action="step3.tpl" method="post">
  8. <input type="radio" name="mailing1" value="checked" />Paragon
  9. <input type="radio" name="mailing" value="" />Faktura
  10. </form>
  11.  
  12. <?php
  13.  
  14. }
  15.  
  16. {/php}


a w pliku podsumowaniu mam:

  1. {php}
  2.  
  3. if (isset($_POST["mailing1"]))
  4.  
  5. echo "Faktura";
  6.  
  7. else
  8.  
  9. echo "Paragon";
  10.  
  11. {/php}


Niestety mimo jakiegokolwiek wyboru wyrzuca mi cały czas odpowiedź 'Paragon'.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.