Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Zmniejszenie wysyłanego formularza
Wilu88
post 9.02.2011, 10:20:16
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Witam

Poszukuje najbardziej optymalnego rozwiązania do przesłania dużej ilości danych do bazy za pomocą formularza.
Formularz wyświetla np 100 rekordów z nazwą produktu i np ilością sztuk. Zmieniam wartość jednego produktu i standardowo wysyłam w pętli wartości wszystkich produktów do bazy porównując id.

Jednak jak to rozwiązać aby wysyłało do bazy tylko wartości które uległy zmianie? Już nawet nie musi porównywać tych wartości czy jest inna, a wystarczyło by aby sprawdził czy pole z ilością sztuk było kliknięte czyli prawdopodobnie nastąpiła jakaś zmiana.
Go to the top of the page
+Quote Post
blade-mrn
post 9.02.2011, 10:31:40
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


Mógłbyś pobierane z bazy dane zapisać do tablicy, wyświetlić w formularzu a potem po wysłaniu formularza porównać przekazywane przez niego wartości z zawartością tablicy po czym zapisać w bazie tylko te wartości które się różniły.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post
kwiatek5
post 9.02.2011, 10:33:07
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 26.01.2011

Ostrzeżenie: (0%)
-----


Dla każdego rekordu użyj oddzielnego formularza:
  1. <input type="text" ....
  2. <input type="submit" ....
  3. </form>
  4. <input type="text" ....
  5. <input type="submit" ....
  6. </form>


Lub przy każdym rekordzie dodaj checkbox - jeśli zaznaczony, to zmień dane rekordu.

Albo użyj ajaxa, np. z jQuery - http://api.jquery.com/jQuery.ajax/
Go to the top of the page
+Quote Post
Wilu88
post 9.02.2011, 10:36:58
Post #4





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Cytat(kwiatek5 @ 9.02.2011, 10:33:07 ) *
Dla każdego rekordu użyj oddzielnego formularza:
  1. <input type="text" ....
  2. <input type="submit" ....
  3. </form>
  4. <input type="text" ....
  5. <input type="submit" ....
  6. </form>


Lub przy każdym rekordzie dodaj checkbox - jeśli zaznaczony, to zmień dane rekordu.

Albo użyj ajaxa, np. z jQuery - http://api.jquery.com/jQuery.ajax/


No to raczej nie wypali bo przy zmianie np 20 rekordów musiałbym w pierwszej wersji kliknąć 20 razy wyślij a w drugiej zaznaczyć 20 razy checkbox i kliknąć wyślij.
Bardziej chodziło by mi o wykorzystanie onchange czy jakoś tak przy danym inpucie. Później zapisać w zmiennej id wszystkich rekordów które zostały zmienione no i przesłać je do bazy. Tylko nie wiem jak to później rozgryźć po stronie javascript

Ten post edytował Wilu88 9.02.2011, 10:38:44
Go to the top of the page
+Quote Post
1010
post 9.02.2011, 12:04:19
Post #5





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


W JS sprawdzaj czy pole zostało zaznaczone, jeśli tak to dodawaj sobie do jakiejś tablicy w JS. Na koniec tą tablice zapisz do pola hidden, prześlij z formularzem i edycję w bazie oprzyj na tym polu hidden...


--------------------
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: 19.06.2025 - 17:48