webForumDet fria alternativet

Kundvagns problem

4 svar · 376 visningar · startad av johnkallioniemi

johnkallioniemiMedlem sedan aug. 200534 inlägg
#1

Nån som orkar hjälpa mig med en liten trivial grej. Jag vill kunna uppdatera antalet i kundvagnen för dom olika produkterna så om jag har exempelvis 5 produkter i kundvagnen så ska jag kunna uppdatera antalet för dom olika produkterna men jag lyckas inte :/

<?
function viewcontent(){
echo "<form method=\"post\" action=\"index.php\">\n";

echo "<table width=\"100%\" border=\"0\">\n";
if(!empty($_SESSION['varukorg'])){
$sum = 0;
?>
&nbsp;&nbsp;Du har beställt följande:<br>
<tr>
    <td colspan="2"></td>
    <td><b>Antal</b></td>
    <td><b>Webbpris</b></td>
    <td><b>Totalt</b></td>
</tr>
<?
foreach($_SESSION['varukorg'] as $v){
if(!$v["amount"]==0){
$sum += $v["price"] * $v["amount"];
echo "<tr>\n<td>\n<input type=\"hidden\" name=\"id[]\" value=\"".$v["id"]."\">\n<input type=\"checkbox\" name=\"item\" value=\"".$v["id"]."\
echo "<td><input type=\"text\" name=\"amount\" value=\"".$v["amount"]."\" size=\"1\"></td>\n";
echo "<td>".$v["price"]."</td>\n";
echo "<td>".$v["price"]*$v["amount"]."</td>\n";
echo "</tr>\n";
                }
            }
?>
<tr>
    <td colspan="4" align="right">Summa inkl moms:</td>
    <td><?=$sum?></td>
</tr>
<tr>
        <td colspan="4"><input type="submit" name="changeitem" value="Uppdatera"><input type="submit" name="clear" value="Töm Kundvagn"><inp
</tr>
<?
    } else {
echo "&nbsp;Din kundvagn är tom";
}
?>
</table>
</form>
<?
exit;
    }
?>
<?
function clear(){
unset($_SESSION['varukorg']);
}
?>

<?
function delitem(){
$id=$_POST['item'];
$_SESSION['varukorg'][$id]["amount"]=0;
}
?>

<?
function changeitem(){
$id=$_POST['id'];
$amount=$_POST['amount'];
foreach($id as $item){

    if($_SESSION['varukorg'][$item]["amount"]=$amount){
    echo "";
    } else {
    $_SESSION['varukorg'][$item]["amount"]=$_SESSION['varukorg'][$item]["amount"]+$amount;
    }
}
}
?>
johnkallioniemiMedlem sedan aug. 200534 inlägg
#2

löste det men var tvungen att lägga ett formulär runt varje produkt i kundvagnen så här. Är det nån som vet och orkar visa mig hur jag ska kunna lösa detta på ett snyggare sätt för att dra ett formulär för varje produkt är bara dumt & fult

<?
function changeitem(){
$id=$_POST['id'];
$amount=$_POST['amount'];
$_SESSION['varukorg'][$id]["amount"]=$amount;
}
?>
<form method="post" action="index.php">
<tr>
<td>
<input type="hidden" name="id" value="186">
<input type="checkbox" name="item"></td>
<td><a href="item.php?pid=186"><small><b>Maxtor 40GB UDMA133 7200rpm 8.5ms 2MB cache silent</b></small></a></td>
<td><input type="text" name="amount" value="1" size="1"></td>
<td>455</td>
<td>455</td><td><input type="submit" name="changeitem" value="Uppdatera" style="height:25px; width: 75px;"></td>
</tr>
</form>
<form method="post" action="index.php"><tr>
<td>
<input type="hidden" name="id" value="185">
<input type="checkbox" name="item"></td>
<td><a href="item.php?pid=185"><small><b>Maxtor 160GB SATA-150 7200rpm 8,5ms 8MB cache sile</b></small></a></td>
<td><input type="text" name="amount" value="1" size="1"></td>
<td>768</td>
<td>768</td><td><input type="submit" name="changeitem" value="Uppdatera" style="height:25px; width: 75px;"></td>
</tr>
</form>
DufferMedlem sedan mars 2003429 inlägg
#3

tja du kan ju t.ex. skapa ett fält för varje produkt och sätta id:t på produkten som namn på fältet med antalet produkter. sen loopar du igenom alla post-variabler och updaterar det som updateras ska. Har själv aldrig provat att loopa igenom resultaten men det ska gå (?).

Funkar inte det kan du ju sätta nummer på fälten med antal produkter sen skapar du ett hidden-fält som innehåller produktens id och namnet på fältet är det samma som namnet på antals-fältet.

mvh

johnkallioniemiMedlem sedan aug. 200534 inlägg
#4

kod mässigt hur skulle det se ut? är så dålig på loopar osv, nån som skulle orka att visa mig ett exempel på hur det skulle fungera. helst med både html & php ;D

DufferMedlem sedan mars 2003429 inlägg
#5

Om du ska loopa igenom dina fält ska fälten heta din produkts id lämpligtvis dess serienummer eller motsvarighet. Sedan fältets "value" är ju antalet man vill ha.

<input type="text" name="ko007muu">
<input type="text" name="gris666noff">
osv..

sedan hanterar du post-variablerna som vilken array som helst (vilket det är)

foreach($_POST as $serial => $value) {
echo "$value $serial";
}

där har du lite att utgå ifrån

mvh

125 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)