Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Formularz - checkbox., Prawodłowa koncepcja wysyłania / pobierania danych.
Goldunube
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 05:19