kggsm
28.09.2010, 20:19:17
Potrzebuję ograniczyć możliwość wprowadzania większej ilości niz jest na magazynie. Ilosc jest przekazywana zmienną: $row_art['STAN']
A o to formularz dodawania do koszyka:
echo '<form action="index.php?mod=przedmiot&id='.$id_artykulu.'" method="POST" >'; echo '<input type="hidden" name="id_artykul" value="'.$row_art['ID_ARTYKULU'].'" />'; if ($row_art['PODZIELNA']==1
) {echo '<input class="standard" name="ilosc" maxlength="5" value="1.00" style="width:30px;" />'; }else {echo '<input class="standard" name="ilosc" maxlength="5" value="1" style="width:30px;" />';
}
echo '<span class="tekst_tab_przedmiot3">'.$row_art['SKROT'].'</span><input type="image" src="grafika/koszyk.gif"
style="width:62px;height:21px;" />';
Mecze sie z tym dwa dni. Jestem laikiem w tym temacie wiec prosze o wyrozumialosc. Wolal bym zeby ilosc byla zmniejszana autmatycznie i po dodaniu pojawial sie komunikat na stronie ze ilosc zostala ograniczona. Dodam jeszcze ze po dodaniu do koszyka w tej chwili wraca z powrotem na strone przedmiotu (tak jak by byla odwswiezana).
vokiel
28.09.2010, 20:33:41
A pokaż jak się męczyłeś, bo z tego co tu pokazałeś, to nie ma żadnego sprawdzania, czy wpisana ilość nie przekracza maksymalnej możliwej.
Generalnie możesz to zrobić tylko po stronie serwera, tylko po stronie przeglądarki lub po obu stronach. Proponuję rozwiązanie ostatnie.
W pierwszej kolejności tworzysz zmienną w js, która będzie przechowywała maksymalną ilość danego produktu. Następnie tworzysz funkcję, która po zmianie ilości w polu sprawdzi czy ta ilość > maksymalnej, jeśli tak to ją zmniejszy do maksymalnej.
Oczywiście użytkownik może wyłączyć javascript, zatem trzeba także po wysłaniu formularza zrobić sprawdzenie poprawności przesłanych danych, z tym, że klientowi nie można tak po prostu podmienić ilości zamawianych produktów, trzeba by mu napisać, że maksymalna ilość jaką może zamówić to ta z pola $row_art['STAN'] i zapytać czy akceptuje.
kggsm
28.09.2010, 20:46:12
Moze tak byc ze zmienia automatycznie tylko zeby pozniej byl o tym komunikat na stronie. Probowalem z if ale nie wiem jak to przekazac do formularza, probowalem tak ze sprawdzalo czy jest ok i pozniej jezeli jest za duzo to $row_art['STAN']=$costam i to w value=".$costam." Komunikat sie wyswietlal ale ilosc i tak jest przekazywana tak jak wpisana w formularzu. Lepiej zeby to bylo w php a nie js bo wiadmomo ze js mozna wylaczyc. Tylko jak to zrobic ?
vokiel
29.09.2010, 08:14:00
if (!empty($_POST['ilosc'])){ // przesłano formularz if ($_POST['ilosc']>$row_art['STAN']){
$ilosc = $row_art['STAN'];
$komunikat = 'Maksymalnie można zamówić '.$row_art['STAN'].' sztuk towaru';
// przekierowanie na poprzednią stronę
header('location: poprzednia_strona'); }else{
// przetwarzanie zamówienia
}
}
kggsm
29.09.2010, 12:23:50
Problem polega na tym ze ilosc i tak jest przekazywana do koszyka. W ktorym miejscu powinienem to wstawic?
vokiel
29.09.2010, 14:01:44
A gdzie chcesz ograniczyć tą ilość? Żeby na stronie klient nie mógł kliknąć 11 sztuk gdy jest tylko 10? Czy, żeby w momencie jak wpisze 11 i kliknie zamów, wyświetliło mu się, że może tylko 10 - nie 11, czy się zgadza na 10?
kggsm
29.09.2010, 14:52:39
Wariant drugi z tym ze tak jak pisalem nie musi potwierdzac. Wystarczy ze bedzie informacja ze ograniczono ilosc.
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.