Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zmiana wartości pola ilość w koszyku, po wciśnięciu "przelicz" zmiana ceny
kosmos
post 24.03.2008, 01:56:43
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
bełdzio
post 24.03.2008, 02:17:37
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
kosmos
post 24.03.2008, 15:27:22
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
bełdzio
post 24.03.2008, 15:50:56
Post #4





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


ale po co dajesz nam ten szablon? pokaz lepiej kod php


--------------------
Go to the top of the page
+Quote Post
kosmos
post 24.03.2008, 16:23:45
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


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];
     }

}


Ten post edytował kosmos 24.03.2008, 16:55:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 11:19