![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
No i mam problem przy tworzeniu sklepu... :?
Prawie wszystko juz jest, jednak chcialem jeszcze dorzucic do niego sprawdzanie czy dany artykul ma odzielna jednostke i w zaleznosci od tego zastosowac odpowiednie środki... A wszystko przez to, ze nie chce by ktos kupil np. 1.23 monitora tylko 1, 2 lub inna liczbe calkowita monitorow... Mam zmienna $podzielna i od niej wszystko sie zaczyna. W adresie przekazuje zmienne $artykul i $ilosc do pliku, w ktorym jest taki oto kod php (reszta zmiennych pobierana jest z bazy - oszczedzilem Wam calego skryptu, bylo by to wtedy baaardzo nieczytelne): [php:1:7f835ee25f]<?php if ($podzielna==0) { ### gdy artykul NIE JEST podzielny :: poczatek ### if(!isset($_GET['submit'])) { ?> <FORM name="kup" method="GET"> <FONT>Artykuł: <B><? print $nazwa; ?> (<? print $indeks; ?>)</B><BR> Ilość: <input type='text' size='3' NAME='ilosc' value='<? print $ilosc; ?>'><B> <? print $jednostka; ?></B></FONT> <INPUT type="hidden" name="artykul" value="<? echo($indeks) ?>"> <INPUT type="hidden" name="podzielna" value="<? echo($podzielna) ?>"> <input type="submit" value=":: dodaj do koszyka ::" class="pyt_1"> </FORM> <? } if(isset($_GET['submit'])) { $ulamek = explode(".", $ilosc); if (isset($ulamek[1])) { $ilosc=$ulamek[0]; ?> <FORM name="kup" method="GET"> Artykuł: <B><? print $nazwa; ?> (<? print $indeks; ?>)</B><BR> Ilość: <input type='text' size='3' NAME='ilosc' value='<? print $ilosc; ?>'><B> <? print $jednostka; ?></B><BR> Ilosc musi byc liczba calkowita dla tego artykulu!</FONT> <INPUT type="hidden" name="artykul" value="<? echo($indeks) ?>"> <INPUT type="hidden" name="podzielna" value="<? echo($podzielna) ?>"> <input type="submit" value=":: dodaj do koszyka ::" class="pyt_1"> </FORM> <? } else { ?> <SCRIPT language="JavaScript"> window.open("inc/dodaj.php?artykul=<? echo($indeks) ?>&podzielna=<? echo($podzielna) ?>&ilosc=<? echo($ilosc) ?>", "_top"); </SCRIPT> <? } } } ### gdy artykul NIE JEST podzielny :: koniec ### if ($podzielna==1) { ### gdy artykul JEST podzielny :: poczatek ### $ilosc = round($ilosc, 1); if($ilosc==0) { $ilosc=0.1; } ?> <FORM name="kup" action="inc/dodaj.php" target="_top" method="GET"> <FONT>Artykuł: <B><? print $nazwa; ?> (<? print $indeks; ?>)</B><BR> Ilość: <input type='text' size='3' NAME='ilosc' value='<? print $ilosc; ?>'><B> <? print $jednostka; ?></B></FONT> <INPUT type="hidden" name="artykul" value="<? echo($indeks) ?>"> <INPUT type="hidden" name="podzielna" value="<? echo($podzielna) ?>"> <input type="submit" value=":: dodaj do koszyka ::" class="pyt_1"> </FORM> <? } ### gdy artykul JEST podzielny :: koniec ### ?>[/php:1:7f835ee25f] Pare slow wyjasnien: Wiec ogolny pomysl opiera sie na tym, ze gdy chce dodac jakis artykul do koszyka to po kliknieciu w artykul otwiera mi sie okienko z tym wlasnie kodem. I tu: gdy artykul ma podzielna jednostke to nie ma zadnego problemu - po kliknieciu :: dodaj do koszyka :: po prostu otwiera sie okienko z informacja, ze dany artykul zostal dodany do koszyka. Ale jak zrobic w przypadku, gdy artykul posiada niepodzielna jednostke? Probowalem w taki sposob, ze gdy sie pojawi to okienko to guziczek :: dodaj do koszyka :: - inaczej submit - nie zostal jeszcze wcisniety (wiersz 3) i wyswieli sie normalnie formularz z nazwa artykulu i iloscia do wprowadzenia. Gdy ta ilosc bedzie ulamkiem powinien pojawic sie drugi formularz (wiersz 14) z informacja, ze liosc musi byc liczba calkowita i dopiero, gdy poda sie liczbe calkowita wyswietla sie okienko informujace, ze artyklul zostal dodany do koszyka (wiersz 28 ). To tyle teorii... :wink: Praktyka jednak jest inna. Gdy to wszystko sprawdzam to rzeczywiscie, gdy jednostka jest podzielna wszystko gra. Jednak co do jednostki niepodzielnej caly czas wyswietla sie ten pierwszy formularz (wiersz 3)! I to nie wazne czy wpisze liczbe calkowita czy nie! Jestem przekonany, ze to ma cos wspolnego z [php:1:7f835ee25f]<?php !isset($_GET['submit']) ?>[/php:1:7f835ee25f] tylko niebardzo wiem co... Pewnie cos takiego wogole nie istnieje 8) i w tym pewnie problem... Tak wiec zwracam sie do Was wielka skarbnico wiedzy i prosze o pomoc... Coz mam uczynic, by TO zadzialalo? ![]() ![]() Jak znam zycie problem pewnie blachy, ale... -------------------- Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie wiem, czy dobrze Cię zrozumiałem i czy o to chodzi, ale spróbuj z tym: [manual:fc07d9fd86]ceil[/manual:fc07d9fd86] albo [manual:fc07d9fd86]floor[/manual:fc07d9fd86]
-------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Nie nie... Nie chce zeby zmienialo liczbe z ulamka na calkowita, bo klient ktory (nieswiadomie oczywiscie :wink: ) chce kupic np. 1.5 czegos tam jak zajrzy w koszyk okaze sie, ze zamiast 1.5 jest jakas inna ilosc! A tu nie o to chodzi...
Mam problem z warunkami w kodzie. Nie wiem jak zrobic, by wyswietlic dajmy na to formularz A, zaraz gdy sie ten pliczek otworzy. I by ten formularz A zmienial sie na formularz B, kiedy jedostka jest niepodzielna a ktos wpisal ulamek. I to wlasciwie o to sie rozchodzi. Przepraszam jezeli nie wyjasnilem tego dokladnie. ![]() -------------------- Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zrób taki koszyk i po zdarzeniu onblur dla każdego input wołasz funkcje js do sprawdzenia czy wprowadzono poprawne dane jak ne to ne puszczasz go dalej z input'a. Funkcje "Przelicz pole ilość" możesz podpiąć pod funkcje dla zdarzenia onblur via js or klasycznie przez php. Pierwsze rozwiązanie jest zalecane
![]() ![]() -------------------- Inni dążą do doskonałości, ja nie muszę ;)
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ech... To tez odpada (przynajmniej jak narazie)... Oznaczalo by to, ze klient moze dodac te przykladowe 1.5 monitora do koszyka, a dopiero jak wejdzie w koszyk bedzie mial informacje, ze tak nie mozna... :? To mnie nie satysfakcjonuje... :wink: Chcialbym, aby to bylo sprawdzane jeszcze przed dodaniem artykulu do koszyka...
A tylko podpowiedzcie mi jak moge sprawdzic czy podana liczba jest ulamkiem. I jak uzaleznic wyswietlanie danych w zaleznosci od tego czy nim jest czy nie... I moj problem raczej przestanie juz istniec! 8) -------------------- Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
w JS chyba są jakies funkcje matematyczne - skoro są, to po zmianie zawartości zaokrąglajj artość formularza w dół i po sprawie
![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Nooo... W php tez sa... :wink: Tylko chcialbym, aby klient wiedzial co sie dzieje z rzeczami, ktore kupuje i dlaczego sie tak dzieje... Wiem, ze najprosciej jest zaokraglic w dol, ale chcialbym by wygladalo to bardziej "inteligentnie"... Niech klient zrozumie dlaczego tak nie moze...
W koncu klient nasz pan... ![]() -------------------- Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Algorytm JS:
1. Sporawdź czy liczba całkowita 2. Jełśi nie, zaokraglij w dół i wyświetl alert. 3. jeśli tak, nie rób nic. Aha.. a nie możesz zrobić linka "+ / -" ? jeden dodaje sztukę, drugi odejnuje? -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 10:08 |