![]() |
![]() |
![]()
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: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
1. Pobierasz dostępne opcje.
2. Pobierasz opcje zaznaczone przez użytkownika (może to być zrobione jednym zapytaniem z LEFT JOIN'em z poprzednim) 3. Sprawdzasz jakie opcje odznaczył, a jakie zaznaczył (array_diff) i czy znajdują się w ogóle na liście dostępnych opcji. 4. Usuwasz te które odznaczył jednym zapytaniem. 5. Dodajesz jednym zapytaniem (multi insert) opcje które zaznaczył ,ale wcześniej nie były zaznaczone. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 05:19 |