Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie ceny w promocji oraz regularnej
Forum PHP.pl > Forum > Przedszkole
YacaZG
Cześć,

prawie nie znam się na php, ale staram się coś rzeźbić i mam taki problem. Kod poniżej ma wyświetlić cenę regularną produktu i cenę promocyjną.

  1. <?php
  2. $a = types_render_field('cena-w-promocji');
  3. $b = types_render_field('cena');
  4. if( $a < $b){
  5. echo "<span class='w-promocji'>Cena regularna $b </span>";
  6. echo "<span class='bez-promocji'>Cena w promocji $a </span>";
  7. }
  8. if(empty($a)) {
  9. echo "<span class='bez-promocji'>Cena regularnax $b </span>";
  10. }
  11. ?>



Za wyświetlanie ceny promocyjnej (gdy ta jest podana) i regularnej odpowiedzialne jest

  1. echo "<span class='w-promocji'>Cena regularna $b </span>";
  2. echo "<span class='bez-promocji'>Cena w promocji $a </span>";


Jeśli jednak nie ma podanej ceny promocyjnej (pole jest puste), powinien tylko wyświetli cenę regularną

  1. echo "<span class='bez-promocji'>Cena regularnax $b </span>";


i to działa.
Niestety oprócz ceny regularnej pokazuje się również to

  1. echo "<span class='w-promocji'>Cena regularna $b </span>";
  2. echo "<span class='bez-promocji'>Cena w promocji $a </span>";


i nie mam pojęcia co z tym zrobić. Chodzi mi o to, że jeśli zmiana $a jest pusta, to kod
  1. echo "<span class='w-promocji'>Cena regularna $b </span>";
  2. echo "<span class='bez-promocji'>Cena w promocji $a </span>";


w ogóle nie powinien pojawiać się na stronie. Czy ktoś może mi podpowiedzieć, co robię źle?
b4rt3kk
NIe wiem co tam ta Twoja funkcja zwraca, ale ja bym zmienił na else.

  1. if( $a < $b){
  2. echo "<span class='w-promocji'>Cena regularna $b </span>";
  3. echo "<span class='bez-promocji'>Cena w promocji $a </span>";
  4. } else {
  5. echo "<span class='bez-promocji'>Cena regularnax $b </span>";
  6. }
leonpro778
Ja bym zaczął od nazwania tych zmiennych jakoś poprawnie ponieważ:
  1. ?php
  2. $a = types_render_field('cena-w-promocji'); // cena w promocji
  3. $b = types_render_field('cena'); // cena bez promocji



I dalej:
  1. if( $a < $b){
  2. echo "<span class='w-promocji'>Cena regularna $b </span>"; // WTF?? class='w-promocji' a dalej regularna
  3. echo "<span class='bez-promocji'>Cena w promocji $a </span>";
  4. }


A co do problemu to trzeba zerknąć co robi Twoja funkcja types_render_field() (obstawiam, że formatuje wyświetlanie ceny i zwraca jakiegoś "niepustego stringa").
YacaZG
Dzięki za podpowiedzi.
Udało mi się to przygotować i działa tak jak powinno

  1.  
  2. <?php
  3. $a = types_render_field('cena-w-promocji');
  4. $b = types_render_field('cena');
  5. $c = 0;
  6.  
  7. if ( $a < $b && $a > $c ) {
  8.  
  9. echo "<span class='w-promocji'>Cena regularna $b </span>";
  10. echo "<span class='bez-promocji'>Cena w promocji $a </span>";
  11. }
  12.  
  13. else {
  14. echo "<span class='bez-promocji'>Cena regularna $b </span>";
  15. }
  16. ?>
  17.  


Rzeczywiście klasy niefortunnie nazwałem, ale tak poza tym to skłądnia jest ok?
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.