webForumDet fria alternativet

Kundvagns problem

PHPur PHP

4 svar · 376 visningar · startad av johnkallioniemi

Medlem sedan aug. 200534 inlägg
Frågan#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;
    }
}
}
?>
Medlem 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>
Medlem 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

Medlem 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

Medlem 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

129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)