Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze "SKLEPEM"
Forum PHP.pl > Forum > Gotowe rozwiązania
geminek
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...
czachor
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]
geminek
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
talee
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" />
geminek
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)
scanner
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
geminek
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
scanner
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?
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-2024 Invision Power Services, Inc.