![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 18.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworzę stronę internetową, którą zalogowany użytkownik będzie mógł spersonalizować według swoich upodobań. By tego dokonać, będzie musiał uprzednio wypełnić formularz złożony z checkbox'ów. Checkbox'y są podzielone następująco: Warzywa - Marchew - Ogórek - itd... Owoce - Jabłko - Pomarańcz - itd... Napisałem skrypt, który dodaje do BD zaznaczone przez użytkownika checkbox'y. Zadbałem również o to by w przypadku ponownego wysłania tego formularza z tymi samymi zaznaczonymi pozycjami, były one w BD nadpisywane, a nie dopisywane. Dodałem również skrypt pobierający z BD wybrane wcześniej pozycje i wyświetlający te rekordy jako zaznaczone checkbox'y (checked=checked). Problem z którym nie wiem jak się prawidłowo uporać, pojawia się w momencie, gdy użytkownik chce odznaczyć wybrane / wybrany wcześniej checkbox. Tu pojawia się moje pytanie. Czy napisać skrypt, którzy przed każdym ponownym zapisem wybranych checbox'ów do BD usuwałby wszystkie poprzednie wpisy dla tego użytkownika, czy raczej napisać skrypt, który porównywałby ilość rekordów w BD z obecną ilością zaznaczonych checkbox'ów i porównując produkty po ID, usuwałby tylko te przy których nie zaznaczono checbox'a ? A może w ogóle realizuje się to w zupełni inny sposób na który nie wpadłem? AJAX / JQUERY (IMG:style_emoticons/default/questionmark.gif) Z góry dziękuję za wszelkie podpowiedzi. Serdecznie pozdrawiam Adam K. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 18.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Kolego za odpowiedź.
Widzisz w moim przypadku sprawa z tabelami jest trochę bardziej skomplikowana. Wymyśliłem sobie to tak: 1. Tabela "uzytkownicy" - wiadomo, przechowuje ID uzytkownika, imie, nazwisko itp. 2. Tabela "produkty" - przechowuje ID produktu, nazwę produktu ("ogórek", "marchewka", itp...) oraz ID grupy produktów 3. Tabela "grupa_produktow" - przechowuje ID grupy produktów, oraz nazwę grupy ("warzywa", "owoce", itd) 4. Tabela "wybrane_produkty" - przechowuje ID uzytkownika, oraz ID Produktu Tabela numer 4 opisuje tą tak zwaną personalizację w moim projekcie. Otóż każdy użytkownik może sobie wejść do swojego profilu i wybrać produkty, które go interesują. Wybrane produkty przy pomocy checkbox'ów przechowywane są właśnie w tabeli nr. 4. W przypadku dodawania nowego produktu sprawa jest prosta, każdy checkbox ma z bazy przypisany numer ID produktu, który reprezentuje. Po wysłaniu formularza, numer ten wpada do tabeli numer 4. Gorzej sytuacja wygląda w momencie gdy użytkownik wchodzi do swojego profilu. Wcześniej zaznaczył produkt "ogórek", dzięki czemu w jego profilu checkbox "ogórek" wyświetlany jest jako "checked". Jednakże użytkownik chciałby teraz odznaczyć pole ogórek i tu pojawia się problem. Gość odznacza checkboxa, wysyła taki formularz i oczekuje, że w jego profilu zostanie ten wpis usunięty. Moje pytanie jak to sprawnie zrobić... Sposób z porównywaniem wpisów w Tabeli 4 z obecnie zaznaczonymi checkboxami, wydaje się rozwiązywać ten problem, jednakże nie jestem jakoś przekonany, czy tak to powinno się robić... Żeby to zrealizować musiałbym pobrać wszystkie rekordy z tabeli 4 przypisane danemu użytkownikowi, wrzucić to w tablice po czym musiałbym wykonać tyle IF 'ów ile mam checkbox'ów w formularzu. Jeżeli się mylę to bardzo proszę o wyprowadzenie mnie z błędu (IMG:style_emoticons/default/wink.gif) Pozdrawiam Adam K. Ten post edytował Goldunube 28.03.2011, 14:39:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 12:35 |