Diskuze: Hodnoty z post přepisují pole
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
ty hodnoty se ti nepřepisují. Ve chvíli, kdy ty vidíš stránku, která ti
vypíše výsledek, tak žádná z těch hodnot na serveru už neexistuje, na co
by si to uchovával. Pokud chceš zaznamenávat všechny výsledky a pak je
sčítat, tak máš víc možností.
$_SESSION['tvojepole'] = [];
// Samozřejmě prvně musíš session spustit pomocí metody
session_start();
A nebo je posilat do stranky do skrytych inputu (type=hidden). Pripadne tam
psat primo vzorec.
Pouzil bych spis session, pokud je potrebujes v php. local storage, pokud v
js.
přidám k předchozím návrhům ještě tu možnost uložení, která (dle
mé kdysi vlastní zkušenosti ) nejvíc děsí začátečníky:
databáze !
jinak souhlas s předchozími přispěvateli a také doporučuji $_SESSION
Zdravím,
přepsal jsem kód pomocí $_SESSION, ale asi mám někde chybu protože se mi
stále nezobrazuje součet výsledků.
<?php
session_start();
$_SESSION['soucet']=[];
class Class2 {
private $vysledek;
public $soucet;
public function vypocitej($cena, $mnozstvi) {
$mezi = $mnozstvi * $cena;
$vysledek = $mezi * 0.21 + $mezi;
$this->pridej($vysledek);
$this->vysledek = $vysledek;
}
public function pridej($hodnota) {
$_SESSION["soucet"][]=$hodnota;
}
public function soucet() {
return array_sum($_SESSION["soucet"]);
}
public function vypis() {
echo '<table border="1"><tr>';
echo '<td>' . $this->vysledek . '</td>';
echo '<td>' . $this->soucet() . '</td>';
echo '</tr></table>';
}
}
Na 4. řádku si to vždycky vynuluješ.
Jirka Jr pro tento případ se databáze opravdu nehodí
A taky v metodě přidej z toho uděláš 2D pole. Podívej se na funkci array_push.
Děkuji všem za rady už mi to funguje.
Zobrazeno 8 zpráv z 8.