Zadejte hledaný výraz...

Změna ceny podle rozbalovací nabídky

PG
verified
rating uzivatele
1. 2. 2024 13:04:37
Nemám s programováním nic společného a nedaří se mi řešení vyhledat, takže jsem se zde zaregistroval a prosím o radu.
Pokouším se marně vytvořit php script pro jednopoložkovou nabídku, který by měnil celkovou cenu podle počtu kusů, velikostí nebo dalších parametrů. Nechci tam tlačítko ODESLAT, ale chci, aby se na stránce ihned vypsala cena (na celé Kč) rovnou při změně v rozbalovací nabídce, případně podle zvoleného přepínače, jako je to běžné u e-shopů při změně počtu kusů. Zároveň tam chci zahrnout slevy (*0.98 atd.). Cena se nebude odesílat mailem, je jen pro informaci zákazníka.
Přikládám části kódu, které neumím propojit a ani nevím, zda jsou správně.
<?php
$jednotkova_cena = '1000';
$doprava = '500';
$cena1 = ( $jednotkova_cena * $pocet * 1.00 ) + $sluzba * $doprava;
$cena2 = ( $jednotkova_cena * $pocet * 0.98 ) + $sluzba * $doprava;
$cena3 = ( $jednotkova_cena * $pocet * 0.96 ) + $sluzba * $doprava;
$cena4 = ( $jednotkova_cena * $pocet * 0.94 ) + $sluzba * $doprava;
$cena5 = ( $jednotkova_cena * $pocet * 0.80 ) + $sluzba * $doprava;
if ($pocet == 1) {echo "Celková cena ".( ceil($cena1) )." Kč" ;}
if ($pocet == 2) {echo "Celková cena ".( ceil($cena2) )." Kč" ;}
if ($pocet == 3) {echo "Celková cena ".( ceil($cena3) )." Kč" ;}
if ($pocet == 4) {echo "Celková cena ".( ceil($cena4) )." Kč" ;}
if ($pocet == 5) {echo "Celková cena ".( ceil($cena5) )." Kč" ;}
?>
Editováno 1. 2. 2024 13:05:57 uživatelem PG
1. 2. 2024 13:04:37
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1524878
Nějak nevidím ten JavaScript, který by tu cenu měl při změně volby měnit. Zkus si dohledat výrazy které potřebuješ na základě JavaScriptu anebo si můžeš podat poptávku či mě rovnou kontaktovat:)
1. 2. 2024 14:09:20
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1524880
Reaha Taul
verified
rating uzivatele
(1 hodnocení)
6. 2. 2024 06:59:41
Váš kód ukazuje snahu o dynamické zobrazování ceny v závislosti na parametrech, ale obsahuje chyby a neefektivní řešení. Zde je vylepšená verze:
Chyby a neefektivnost v původním kódu:
Duplicitní výpočty: Pro každý počet kusů se cena počítá znovu, i když se mění jen počet.
Neošetřené proměnné: Proměnné jako $sluzba a $pocet nejsou inicializovány, což může vést k chybám.
Nepoužívané proměnné: Proměnné $cena2, $cena3, $cena4 a $cena5 se nikde nepoužívají.
Nesprávné použití ceil: Zaokrouhlování ceny by mělo probíhat až na konci, po započítání všech slev.
Vylepšený kód:
1.00, 2 => 0.98, 3 => 0.96, 4 => 0.94, 5 => 0.80);
if (isset($_POST) && isset($_POST)) {
  $pocet = $_POST;
  $sluzba = $_POST;
  $cena = ($jednotkova_cena * $pocet * $slevy) + ($sluzba * $doprava);
  echo "Celková cena: " . ceil($cena) . " Kč";
} else {
  echo "Vyberte počet kusů a typ služby.";
}
?>
 
    1
    2
    3
    4
    5
 
 
    Základní
    Expresní
 
 
Vylepšení:
Používá $_POST k načtení parametrů z formuláře.
Vypočítá cenu pouze po odeslání formuláře.
Uchovává slevy v poli pro snazší přístup.
Zaokrouhlování ceny probíhá až na konci.
Zobrazuje formulář pro výběr počtu kusů a typu služby.
Další tipy:
Můžete přidat validaci vstupů, aby se uživatelé nemohli pokusit zadat neplatné hodnoty.
Můžete formátovat výstup ceny s desetinnými místy.
Můžete přidat další parametry, které ovlivňují cenu, jako je velikost produktu.
6. 2. 2024 06:59:41
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1525006
Bogdan
verified
rating uzivatele
(1 hodnocení)
6. 2. 2024 22:27:42
hi Váš kód ukazuje snahu o dynamické zobrazování ceny v závislosti na parametrech, ale obsahuje chyby a neefektivní řešení. Zde je vylepšená verze:
Chyby a neefektivnost v původním kódu:
Duplicitní výpočty: Pro každý počet kusů se cena počítá znovu, i když se mění jen počet.
Neošetřené proměnné: Proměnné jako $sluzba a $pocet nejsou inicializovány, což může vést k chybám.
Nepoužívané proměnné: Proměnné $cena2, $cena3, $cena4 a $cena5 se nikde nepoužívají.
Nesprávné použití ceil: Zaokrouhlování ceny by mělo probíhat až na konci, po započítání všech slev.
Vylepšený kód:
1.00, 2 => 0.98, 3 => 0.96, 4 => 0.94, 5 => 0.80);
if (isset($_POST) && isset($_POST)) {
  $pocet = $_POST;
  $sluzba = $_POST;
  $cena = ($jednotkova_cena * $pocet * $slevy) + ($sluzba * $doprava);
  echo \"Celková cena: \" . ceil($cena) . \" Kč\";
} else {
  echo \"Vyberte počet kusů a typ služby.\";
}
?>
 
    1
    2
    3
    4
    5
 
 
    Základní
    Expresní
 
 
Vylepšení:
Používá $_POST k načtení parametrů z formuláře.
Vypočítá cenu pouze po odeslání formuláře.
Uchovává slevy v poli pro snazší přístup.
Zaokrouhlování ceny probíhá až na konci.
Zobrazuje formulář pro výběr počtu kusů a typu služby.
Další tipy:
Můžete přidat validaci vstupů, aby se uživatelé nemohli pokusit zadat neplatné hodnoty.
Můžete formátovat výstup ceny s desetinnými místy.
Můžete přidat další parametry, které ovlivňují cenu, jako je velikost produktu.
AI?
6. 2. 2024 22:27:42
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1525060
crs
verified
rating uzivatele
(1 hodnocení)
7. 2. 2024 04:57:51
https://codepen.io/kriplozoik/pen/RwdYQrQ
Editováno 9. 2. 2024 00:30:47 uživatelem crs
7. 2. 2024 04:57:51
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1525067
PG
verified
rating uzivatele
13. 2. 2024 16:32:06
https://codepen.io/kriplozoik/pen/RwdYQrQ
Děkuji moc za ochotu pomoci, s drobnýma úpravama jsem to použil.
13. 2. 2024 16:32:06
https://webtrh.cz/diskuse/zmena-ceny-podle-rozbalovaci-nabidky#reply1525304
Pro odpověď se přihlašte.
Přihlásit