Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wyświetleniem w smarty
Forum PHP.pl > Forum > Przedszkole
kalashnikov
Witam, jest 03:00 w nocy a ja dalej nie mogę sobie z tym poradzić sad.gif Sprawa wygląda tak, mam napisany prosty koszyk do którego sobie wrzucam produkty, wygląda on tak:
  1. <?php
  2. if(!isset($_SESSION['koszyk'])){
  3. $numer = 1;
  4. }else{
  5. $numer = count($_SESSION['koszyk'])+1;
  6. }
  7.  
  8. if(isset($_SESSION['uzytkownik'])){
  9. if(isset($_POST['add_to_carts'])){
  10. if(!isset($_SESSION['koszyk'])){
  11. $numer = 1;
  12. }else{
  13. $numer = count($_SESSION['koszyk']);
  14. $numer++;
  15. }
  16. $_SESSION['koszyk'][$numer]['id'] = $_POST['id_kd_products'];
  17. $_SESSION['koszyk'][$numer]['nazwa'] = $_POST['name_kd_products'];
  18. $_SESSION['koszyk'][$numer]['cena'] = $_POST['price'];
  19. header('location: /karol/egzamin/produkty');
  20. }
  21. }?>


Wyświetlanie zawartych produktów w koszyku wygląda tak(wraz z przyciskiem usuwania poszczególnego produktu):
  1. <?php
  2. for($i=1;$i<$numer;$i++){
  3. if(!empty($_SESSION['koszyk'][$i]['nazwa'])){
  4. echo '<form action="#" method="post" name="koszyk">';
  5. echo "<b>Produkt:</b> ";
  6. echo $_SESSION['koszyk'][$i]['nazwa']." ";
  7. echo "<b>Cena:</b> ";
  8. echo $_SESSION['koszyk'][$i]['cena']." ";
  9.  
  10. echo '<input type="hidden" value="'.$i.'" name="id">';
  11. echo '<input type="submit" value="Usuń" name="del">';
  12.  
  13. echo '</form>';
  14. }
  15.  
  16. }?>

Przycisk do usuwania całego koszyka, oraz zdefiniowanie usuwania całego koszyka i pojedynczego produktu
  1. <?php
  2. echo '<form action="#" method="post" name="koszyk">';
  3. echo '<input type="submit" value="Kasuj Koszyk" name="clear">';
  4. echo '</form>';
  5.  
  6. if($_POST['clear']){
  7. unset($_SESSION['koszyk']);
  8. header('location: /karol/egzamin/produkty');
  9. }
  10.  
  11. if($_POST['del']){
  12. $pid = $_POST['id'];
  13. unset($_SESSION['koszyk'][$pid]);
  14. header('location: /karol/egzamin/produkty');
  15. }?>


Wszystko działa jak należy, nawet "częściowo" dobrze wyświetla w smarty w pliku tpl, częściowo mam na myśli to, że wyświetla mi tylko jeden aktualnie wybrany produkt, czyli zwyczajnie mi nadpisuje zmienną. Wykorzytywałem ten sposób:
  1.  
  2. $smarty->assign('nazwa_produktu', $_SESSION['koszyk'][$i]['nazwa']);
  3. $smarty->assign('cena_produktu', $_SESSION['koszyk'][$i]['cena']);
  4. $smarty->assign('ilosc', $ilosc);
  5.  
  6.  
  7. $cart = array(array('nazwa_produktu' => $_SESSION['koszyk'][$i]['nazwa']),
  8. array('cena_produktu' => $_SESSION['koszyk'][$i]['cena']));
  9. $smarty->assign('cart', $cart);
  10. $smarty->assign('licz', $i);


Plik tpl:
  1. {section name=e loop=$ilosc }
  2. {$smarty.section.e.iteration}
  3. {$ilosc[e].nazwa_produktu}
  4. {$ilosc[e].cena_produktu}
  5. {/section}
  6. ------------------------
  7. {foreach name=outer item=koszfrom=$cart}
  8. {foreach key=key item=item from=$kosz}
  9. {$key}: {$item}<br />
  10. {/foreach}
  11. {/foreach}


Nie potrafie tylko przekazać wszystkich informacji do smarty, czyli jesli uzytkownik kupi 5 produktów to 5 ma zostac wyswietlnonych sad.gif
Help!

ps. z góry dziękuję za pomoc smile.gif
XP'ek
Po pierwsze niepokoi mnie petla w petli po drugie jeśli smarty. Nie printujesz i echo. Produkty wyślij w tablica na zasadzie
Kod
Array(
[1]=array([nazwa]="produkt 1",[cena]="200"), itd
)
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.