Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana wartości pola ilość w koszyku
Forum PHP.pl > Forum > PHP
kosmos
Witam
Nie znalazłem podobnego tematu więc zakładam nowy.
Mam problem związany z koszykiem opartym póki co na tablicy sesji $_SESSION['koszyk']=array();
Problem tkwi w tym że nie wiem za bardzo jak zrobić aby po zmianie przez klienta ilości danego towaru, i po przyciśnięciu przycisku "przelicz", Ogólna cena sumaryczna została zmieniona o iloczyn dodanych dodanych produktów czyli:

CODE
Nazwa produktu ilość Cena
produkt 1 1 20 zł
produkt 2 1 25 zł
Razem: 45 zł

jest to przykład wyświetlonego koszyka po dodaniu produktu 1 i 2.

Pola ilość są typu text i użytkownik może zmienićwatość 1 np: na 5 jeśli chce kupić nie 1, a 5 takich samych produktów.
Obrazuje to tak szczegółowo aby nie było niejasności smile.gif
CZYLI;
CODE
Nazwa produktu ilość Cena
produkt 1 1 20 zł
produkt 2 5 25 zł
Razem:145 zł


i teraz
... jak zmienic ogólną sumaryczną cenę oraz zmienić w tablicy wartość pola ilosc?
Nie wklejam go w znacznikach CODE poniewaz tworzy się ramka smile.gif
oto kod:



  1. <?php
  2. print'<table border=1 cellpading=1 align=center>
  3. <tr>
  4.  <td bgcolor="silver" width=10% align=center>Lp</td>
  5.  <td bgcolor="silver" width=50% align=center>Nazwa towaru</td>
  6.  <td bgcolor="silver" width=20% align=center>Ilosć</td>
  7.  <td bgcolor="silver" width=20% align=center>Cena</td>
  8. <td bgcolor="silver" width=15% align=center>Usuń</td>
  9. </tr>
  10.  
  11.  
  12. <form action=index.php?go=koszyk method=POST>';
  13. foreach($_SESSION['koszyk'] as $klucz =>$wartosc) 
  14. { $pom=$klucz;
  15. $pom++;
  16. $razem=$razem+$wartosc['Cena'];
  17. print'<tr>
  18. <td>
  19.  '.$pom.'
  20. </td>
  21. <td>
  22.  '.$wartosc['Nazwa_towaru'].'
  23. </td>
  24.  
  25. <td align=center>
  26.  <input type="text" name="ilosc" size="2" value="1"> 
  27. </td>
  28.  
  29. <td align=center>
  30.  '.$wartosc['Cena'].' zł
  31. </td>
  32. <td>
  33.  <input type="radio" name="usun" value="cos" />
  34. </td> 
  35. </tr>';
  36.  
  37. }
  38. print'<tr border=0>
  39. <td colspan="4" align="right">
  40.  
  41. Razem: '.$razem.' zł
  42.  <input type=submit value="przelicz">
  43.  
  44. </td>
  45. <tr>'; 
  46.  print</table>
  47.  </form>
  48. ?>

Z góry dzięki za pomysły i pomoc..
bełdzio
np przyjmij ze struktura tablicy z koszykiem wyglada tak:

Kod
Array
(
    [id] => Array
        (
            [nazwa] => Produkt
            [ilosc] => 5
            [wartosc] => 12.4
        )

)


i teraz jak chcesz modyfikować ilośc produktów to odwolujesz sie do indexu tablicy, który jest równy id produktu
kosmos
Czesc
Ponawiam pytanie bo jednak nadal nie moge sobie z tym dać rady ...


  1. <?php
  2. <form action=index.php?go=koszyk method=POST>';
  3. foreach($_SESSION['koszyk'] as $klucz =>$wartosc) 
  4. { $pom=$klucz;
  5. $pom++;
  6. $razem=$razem+$wartosc['Cena'];
  7. print'<tr>
  8. <td>
  9.  '.$pom.'
  10. </td>
  11. <td>
  12.  '.$wartosc['Nazwa_towaru'].'
  13. </td>
  14.  
  15. <td align=center>
  16.  <input type="text" name="ilosc" size="2" value="'.$wartosc['Ilosc'].'"> 
  17. </td>
  18.  
  19. <td align=center>
  20.  '.$wartosc['Cena'].' z&#322;
  21. </td>
  22. <td>
  23.  <input type="radio" name="usun" value="cos" />
  24. </td> 
  25. </tr>';
  26.  
  27. }
  28. print'<tr border=0>
  29. <td colspan="4" align="right">
  30.  
  31. Razem: '.$razem.' z&#322;
  32.  <input type=submit value="przelicz">
  33.  
  34. </td>
  35. <tr>'; 
  36.  print'</table>
  37.  </form>
  38. ?>

po wciśnieciu buttona przelicz chce aby wprowadzona wartosc ilosci sprzetu przez uzytkownika zmieniła się i aby cena sumaryczna takze uległa zmianie o iloczyn dodatkowych x elementów kazdej pozycji. Czyli normalna zasada działania koszyka.


problem jest w tym ze po wciśnięciu Przelicz.... otrzymuje metodą post czyli $_POST['ilosc'], wartosc tylko ostatniego elementu sad.gif czyli np:jak mam coś takiego

CODE
nazwa ilosc
a 1
b 2
c 1


to otrzymuje tlko 1. a pozostale wartosci czyli 1 i 2 sa jakby stracone ...

Nie mam pomysłu jak to rozwiązac sad.gif

Proszę o jakieś pomysły ... porady ... sugestie
bełdzio
ale po co dajesz nam ten szablon? pokaz lepiej kod php
kosmos
pisałem że na szablon nie mam pomysłu..

Ale

w tej chwili mam coś takiego
Kod
print'<table border=1 cellpading=1 align=center>
                  <tr>
                       <td bgcolor="silver" width=10% align=center>Lp</td>
                       <td bgcolor="silver" width=50% align=center>Nazwa towaru</td>
                         <td bgcolor="silver" width=20% align=center>Ilosć</td>
                         <td bgcolor="silver" width=20% align=center>Cena</td>
                          <td bgcolor="silver" width=15% align=center>Usuń</td>
                  </tr>
                  

                  <form action=index.php?go=koszyk method=POST>';
                  foreach($_SESSION['koszyk'] as $klucz =>$wartosc)
                  { $pom=$klucz;
                    $pom++;                    
                    $razem=$razem+$wartosc['Cena'];
                    print'<tr>
                            <td>
                                 '.$pom.'
                            </td>
                            <td>
                                 '.$wartosc['Nazwa_towaru'].'
                            </td>

                            <td align=center>
                                 <input type="text" name=\"$klucz\" size="2" value="'.$wartosc['Ilosc'].'">
                            </td>

                            <td align=center>
                                 '.$wartosc['Cena'].' zł
                            </td>
                            <td>
                                 <input type="radio" name="usun" value="cos" />
                            </td>
                  </tr>';
                  
                  }
            print'<tr border=0>
                            <td colspan="4" align="right">
                            
                                  Razem: '.$razem.' zł
                                 <input type=submit value="przelicz" name="przelicz_b">
                                  
                            </td>
                  <tr>';
         print'</table>
         </form>
         <a href=\'index.php\'>Powrót</a><br>
         <a href=\'index.php?go=koszyk&licz=true\'>Przelicz</a>';

       }









if(isset($_POST['$przelicz_b']))
{
przelicz();
}

function przelicz()
{
   foreach($_SESSION['koszyk'] as $klucz =>$wartosc)
     {
       if ($_POST[$klucz]=='0')
       unset($_SESSION['koszyk'][$klucz]);
       else
       $_SESSION['koszyk'][$klucz]=$_POST[$klucz];
     }

}
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-2025 Invision Power Services, Inc.