Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem ze "SKLEPEM"
geminek
post 21.03.2004, 21:22:03
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?questionmark.gif
biggrin.gif
Jak znam zycie problem pewnie blachy, ale...


--------------------
Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
Go to the top of the page
+Quote Post
czachor
post 21.03.2004, 21:28:16
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
Go to the top of the page
+Quote Post
geminek
post 21.03.2004, 21:37:55
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.
smile.gif


--------------------
Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
Go to the top of the page
+Quote Post
talee
post 21.03.2004, 23:44:01
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 smile.gif

haha.gifs.boo.pl/cart.gif" border="0" class="linked-image" />


--------------------
Inni dążą do doskonałości, ja nie muszę ;)
Go to the top of the page
+Quote Post
geminek
post 22.03.2004, 10:22:40
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ą...
Go to the top of the page
+Quote Post
scanner
post 22.03.2004, 10:25:25
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 smile.gif


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
geminek
post 22.03.2004, 10:30:48
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... smile.gif


--------------------
Gdy wszystko inne zawiedzie, zapoznaj się z instrukcją...
Go to the top of the page
+Quote Post
scanner
post 22.03.2004, 10:48:32
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?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 10:08