webbMedlem sedan juni 201025 inlägg Hej,
Jag har ett problem med SESSION för en enkel varukorg, summan ($_SESSION['sum']) ökar varje gången jag sänder formulären med nytt tal:
if(isset($_REQUEST['submitted'])) { // form är sänd
$summa = $_SESSION['pris_antal']; // Pris * antal
if (isset($_SESSION['sum'])) {
$_SESSION['sum'] = $_SESSION['sum'] + $summa;
echo $_SESSION['sum'];
}else {
$_SESSION['sum'] = $summa;
}
Men när jag nollställer $_SESSION['sum'] så blir $_SESSION['sum'] = $summa oavsett hur många gånger jag sänder formulären:
if(isset($_REQUEST["rensa"])) {
unset($_SESSION["sum"]);
}
Är det någon SESSION-expert som kan hjälpa till?
Tack i för hand!
Webb
GunnarDMedlem sedan juni 20014 290 inlägg Inte så konstigt eftersom du i koden säger att om inte "sum" finns (isset()) så sätt den lika med $summa.
webbMedlem sedan juni 201025 inlägg Tack för svaret,
För första gången om inte "sum" finns (isset())så sätt den lika med $summa som har ett initierat tal. Sedan när jag skickar formulären för andra gången så är "sum" lika med $summa, då bör satsen if (isset($_SESSION['sum'])) gälla!
Mvh
Webb
GunnarDMedlem sedan juni 20014 290 inlägg Japp, och där lägger du på $summa igen.
Så sum kommer alltid att vara minst lika med $summa.
Logiken i din kod ser ut så här:
om sum finns
sum=sum+$summa
annars
sum=$summa
Denna kod kan du i princip ersätta med:
sum=sum+$summa
Vilket ger samma resultat i detta fallet, förutsatt att du inte har annat i din if sats..
fiddlerMedlem sedan juli 20023 617 inlägg Var sätter du $_SESSION['pris_antal'] någonstans? Har den något värde?
webbMedlem sedan juni 201025 inlägg Jag ersatte koden med sum=sum+$summa, men det är samma problem när jag nollställer $_SESSION['sum'] så blir $_SESSION['sum'] = $summa. Problem uppstår när jag nollställer $_SESSION['sum'].
if(isset($_REQUEST["rensa"])) {
unset($_SESSION["sum"]);
}
$_SESSION['pris_antal'] kommer från:
$_SESSION['pris_antal'] = $_REQUEST['storlek_pris'];
<script type="text/javascript">
function calcprice(){
var size = document.getElementById('storlek').value;
var antal = document.getElementById('antal').value;
document.storlek_pris.pris.value = size * antal;
}
</script>
<form id="storlek_pris" name="storlek_pris" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">