Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zmniejszenie wysyłanego formularza
Forum PHP.pl > Forum > Przedszkole
Wilu88
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.
blade-mrn
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.
kwiatek5
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/
Wilu88
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
1010
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...
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-2025 Invision Power Services, Inc.