Witam, jest 03:00 w nocy a ja dalej nie mogę sobie z tym poradzić (IMG:
style_emoticons/default/sad.gif) Sprawa wygląda tak, mam napisany prosty koszyk do którego sobie wrzucam produkty, wygląda on tak:
<?php
if(!isset($_SESSION['koszyk'])){ $numer = 1;
}else{
$numer = count($_SESSION['koszyk'])+1; }
if(isset($_SESSION['uzytkownik'])){ if(isset($_POST['add_to_carts'])){ if(!isset($_SESSION['koszyk'])){ $numer = 1;
}else{
$numer = count($_SESSION['koszyk']); $numer++;
}
$_SESSION['koszyk'][$numer]['id'] = $_POST['id_kd_products'];
$_SESSION['koszyk'][$numer]['nazwa'] = $_POST['name_kd_products'];
$_SESSION['koszyk'][$numer]['cena'] = $_POST['price'];
header('location: /karol/egzamin/produkty'); }
}?>
Wyświetlanie zawartych produktów w koszyku wygląda tak(wraz z przyciskiem usuwania poszczególnego produktu):
<?php
for($i=1;$i<$numer;$i++){
if(!empty($_SESSION['koszyk'][$i]['nazwa'])){ echo '<form action="#" method="post" name="koszyk">'; echo $_SESSION['koszyk'][$i]['nazwa']." "; echo $_SESSION['koszyk'][$i]['cena']." ";
echo '<input type="hidden" value="'.$i.'" name="id">'; echo '<input type="submit" value="Usuń" name="del">';
}
}?>
Przycisk do usuwania całego koszyka, oraz zdefiniowanie usuwania całego koszyka i pojedynczego produktu
<?php
echo '<form action="#" method="post" name="koszyk">'; echo '<input type="submit" value="Kasuj Koszyk" name="clear">';
if($_POST['clear']){
unset($_SESSION['koszyk']); header('location: /karol/egzamin/produkty'); }
if($_POST['del']){
$pid = $_POST['id'];
unset($_SESSION['koszyk'][$pid]); header('location: /karol/egzamin/produkty'); }?>
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:
$smarty->assign('nazwa_produktu', $_SESSION['koszyk'][$i]['nazwa']);
$smarty->assign('cena_produktu', $_SESSION['koszyk'][$i]['cena']);
$smarty->assign('ilosc', $ilosc);
$cart = array(array('nazwa_produktu' => $_SESSION['koszyk'][$i]['nazwa']), array('cena_produktu' => $_SESSION['koszyk'][$i]['cena'])); $smarty->assign('cart', $cart);
$smarty->assign('licz', $i);
Plik tpl:
{section name=e loop=$ilosc }
{$smarty.section.e.iteration}
{$ilosc[e].nazwa_produktu}
{$ilosc[e].cena_produktu}
{/section}
------------------------
{foreach name=outer item=koszfrom=$cart}
{foreach key=key item
=item from
=$kosz} {$key}: {$item}<br />
{/foreach}
{/foreach}
Nie potrafie tylko przekazać wszystkich informacji do smarty, czyli jesli uzytkownik kupi 5 produktów to 5 ma zostac wyswietlnonych (IMG:
style_emoticons/default/sad.gif)
Help!
ps. z góry dziękuję za pomoc (IMG:
style_emoticons/default/smile.gif)
Ten post edytował kalashnikov 17.02.2013, 03:15:49