Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Koszyk -> Usuwanie elementow ?
Forum PHP.pl > Forum > Gotowe rozwiązania
Nookie
Pytanko zrobilem sobie skrypt koszyka i mam tylko problem z jedna recza.. usuwaniem poszczegolnych elementow...

zawartosc koszyka pzrechowuje na sesjach w postaci..
session["items"][n][0] = kategoria
session["items"][n][1] = nrid
session["items"][n][2] = ilosc
session["items"][n][3] = b_pomalowane

n to numer produktu w koszyku

moze dolacze funkcje dodajaca produkt do koszyka zeby ulatwic orjentacje jak mam to zaimplementowane..

[php:1:3f7b98398c]<?php

function add_item ($category,$id,$amount, $painted)
{
if ($_SESSION["item_count"] > 0)
{
$found=false;
for($i=0; $i<$_SESSION["item_count"]; $i++) //jesli przedmiot jest na liscie to, zwieksz ich liczbe na liscie
{
if (($_SESSION["items"][$i][0] == $category) and ($_SESSION["items"][$i][1] == $id) and $_SESSION["items"][$i][3] == $painted)
{
$_SESSION["items"][$i][2] += $amount;
$found=true;
}
}

if (!$found)
{
//dodaj przedmiot do istniejacego koszyka
$_SESSION["items"][$_SESSION["item_count"]] = array($category,$id,$amount,$painted);
$_SESSION["item_count"]++;
}
}

else
{
//dodaj pierwszy przedmiot do koszyka
$_SESSION["items"][0] = array($category,$id,$amount,$painted);
$_SESSION["item_count"]=1;
}



?>[/php:1:3f7b98398c]

Pytanie jak zrobic zeby mozna bylo usuwac poszczegolne produkty znajdujace sie w koszyku.. bo ja potrafie jedynie wymyslic jak usunac wszystkie biggrin.gif

ewentualnie umiem zrobic $_SESSION["item_count"]--
a wtedy znika ostatni produkt dodany smile.gif

jakies podpowiedzi ?
FiDO
Poczytaj o funkcji [manual:3e972f311d]array_splice[/manual:3e972f311d].
hamlecik
mozesz jeszcze sprobowac z [manual:f3fe8257f3]unset[/manual:f3fe8257f3]
Nookie
I znalazlem.. rozwiazanie..
probowalem z unset
i wychodzilo mi juz nawet.. smile.gif ale lepszym (dla mnei rozwiazaniem)
jest:

[php:1:623e4c3281]<?php
function delete_item($category, $id)
{
for($j=0; $j<$_SESSION["item_count"]; $j++)
{
if (($_SESSION["items"][$j][0] == $category))
{
$pos=0;
for($i=0; $i<$_SESSION["item_count"]; $i++)
{
if ($_SESSION["items"][$i][1] != $id)
{
$_SESSION["items"][$pos] = $_SESSION["items"][$i];
$pos++;
}
}
}
}

$_SESSION["item_count"]--;
}
?>[/php:1:623e4c3281]


Co do unstea.. to bedzie cos kolo..


[php:1:623e4c3281]<?php

function delete_item($category, $id)
{
for($j=0; $j<$_SESSION["item_count"]; $j++)
{
if (($_SESSION["items"][$j][0] == $category))
{
for($i=0; $i<$_SESSION["item_count"]; $i++)
{
if ($_SESSION["items"][$i][1] == $id)
{
unset($_SESSION["items"][$i]);

}
}
}
}

$_SESSION["item_count"]--;
}

?>[/php:1:623e4c3281]


dzieki za podpowiedzi chlopaki!

pozdrawiam
shpaque
Mam podobny problem, ale nie wiem w jaki sposób to zrobić - u mnie z kolei wiersz w koszyku wygląda następująco:
  1. $total = 0;
  2. for ($i=0; $i<$itemcount; $i++)
  3. {
  4. $strHTML .= "<tr>"."\n";
  5. $strHTML .= "<td align=center><img src='./db/images/tn".$cart[PRODUCTIMAGE][$i]."'></td>"."\n";
  6. $strHTML .= "<td align=center><h2>".$cart[CATEGORY][$i]."</td>"."\n";
  7. $strHTML .= "<td align=center><h2>".$cart[PRODUCTCODE][$i]."</td>"."\n";
  8. $strHTML .= "<td align=center><h2>".$cart[PRODUCTNAME][$i]."</td>"."\n";
  9. $strHTML .= "<td align=center><h2>".$cart[FIRMA][$i]."</td>"."\n";
  10. $strHTML .= "<td align=center><h2>"."".number_format($cart[PRICE][$i],2)."</td>"."\n";
  11. $strHTML .= "<td align=center><img src='./images/del.png' title='Usuń pozycję'></td>"."\n";
  12. $strHTML .= "<tr>"."\n";
  13. if ($itemcount == '1')
  14. {
  15. $total = $total + ($cart[PRICE][$i]);
  16. $msg = "";
  17. }
  18. else if ($itemcount == '2')
  19. {
  20. $total = "29.90";
  21. $msg = "Musisz dodać jeszcze jedną rzecz!";
  22. }
  23. else if ($itemcount == '3')
  24. {
  25. $total = "29.90";
  26. $msg = "";
  27. }
  28. else if ($itemcount > '3')
  29. {
  30. $total = "29.90";
  31. $msg = "Wystąpił błąd! Ilość rzeczy do wymiany została przekroczona!";
  32. }
  33.  
  34. }
  35. $strHTML .= "<tr><tr><tr><tr>"."\n";
  36. $strHTML .= "<td></td><td></td><td></td><td></td>"."\n";
  37. $strHTML .= "<td bgcolor=#EB1295 align=center><h4>Do zapłaty:</td>"."\n";
  38. $strHTML .= "<td bgcolor=#EB1295 align=center><h4>"."".number_format($total, 2)."</td>"."\n";
  39. $strHTML .= "</tr>"."\n";
  40. $strHTML .= "</table>"."\n";
  41. $strHTML .= "</div>"."\n";
  42. $strHTML .= "<div>"."\n";
  43. $strHTML .= "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">"."\n";
  44. $strHTML .= "<tr>"."\n";
  45. $strHTML .= "<td align=center><h3>".$msg."</h3></td>"."\n";
  46. $strHTML .= "</table>"."\n";
  47. $strHTML .= "</div>"."\n";
  48. }


da radę jakoś zrobić, żeby usunąć konkretny $itemcount w tym wierszu?
  1. $strHTML .= "<td align=center><img src='./images/del.png' title='Usuń pozycję'></td>"."\n";


a jeśli nie, to jak?

I jak usunąć wszystkie? (oproznic koszyk)


dzieki wielkie z gory za odpowiedzi
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.