Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Jak ograniczyć wpisywaną ilość ?
Forum PHP.pl > Forum > Przedszkole
kggsm
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:
  1. echo '<form action="index.php?mod=przedmiot&id='.$id_artykulu.'" method="POST" >';
  2. echo '<input type="hidden" name="id_artykul" value="'.$row_art['ID_ARTYKULU'].'" />';
  3. if ($row_art['PODZIELNA']==1) {echo '<input class="standard" name="ilosc" maxlength="5" value="1.00" style="width:30px;" />';
  4. }else {echo '<input class="standard" name="ilosc" maxlength="5" value="1" style="width:30px;" />';
  5.  
  6. }
  7. echo '<span class="tekst_tab_przedmiot3">'.$row_art['SKROT'].'</span><input type="image" src="grafika/koszyk.gif"
  8.  
  9. style="width:62px;height:21px;" />';
  10. echo '</form>';


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
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
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
  1. if (!empty($_POST['ilosc'])){ // przesłano formularz
  2. if ($_POST['ilosc']>$row_art['STAN']){
  3. $ilosc = $row_art['STAN'];
  4. $komunikat = 'Maksymalnie można zamówić '.$row_art['STAN'].' sztuk towaru';
  5. // przekierowanie na poprzednią stronę
  6. header('location: poprzednia_strona');
  7. }else{
  8. // przetwarzanie zamówienia
  9. }
  10. }
kggsm
Problem polega na tym ze ilosc i tak jest przekazywana do koszyka. W ktorym miejscu powinienem to wstawic?
vokiel
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.