![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam skrypt, który pobiera z bazy danych rekordy i niektóre wartości są w textboxie. Na samym dole mam przycisk do zapisu, lecz jednak gdy chcę zapisać to coś nie wychodzi. Problem polega na tym że zawsze pobiera mi ostatni rekord do zapisu, a nie wszystkie. Macie na to sposób?
Ten post edytował dawidos_95 3.07.2013, 20:16:09 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 28 Dołączył: 9.08.2004 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Witam,
najpierw mała uwaga: oba pola maja nazwę "title", mimo że w jednym jest wartość "title" a w drugim "skin". Twoim problemem, jest to że masz w formularzu wiele pól o tej samej nazwie (tzn. wartość każdego kolejnego pola nadpisuje wartość poprzedniego), stąd efekt odczytania tylko ostatniego wiersza. Możesz to rozwiązać w taki sposób: 1. w każdym wierszu dodać pole ukryte z ID rekordu, którego dane są w danym wierszu; pole niech będzie "tablicowe" czyli nazwa kończy się nawiasami kwadratowymi, np: <input type="hidden" name="idRekordow[]" /> 2. do nazw pól dodajesz sufix z ID rekordu, np. <input type="text" name="title_<?php $rekord['id'] ?>" /> 3. przy odbieraniu formularza odczytujesz wartość tablicy z ID rekordów 4. w pętli przechodzisz i odczytujesz z POST dane dla każdego rekordu, np. $_POST['title_'. $id] Pozdrawiam |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, najpierw mała uwaga: oba pola maja nazwę "title", mimo że w jednym jest wartość "title" a w drugim "skin". Twoim problemem, jest to że masz w formularzu wiele pól o tej samej nazwie (tzn. wartość każdego kolejnego pola nadpisuje wartość poprzedniego), stąd efekt odczytania tylko ostatniego wiersza. Możesz to rozwiązać w taki sposób: 1. w każdym wierszu dodać pole ukryte z ID rekordu, którego dane są w danym wierszu; pole niech będzie "tablicowe" czyli nazwa kończy się nawiasami kwadratowymi, np: <input type="hidden" name="idRekordow[]" /> 2. do nazw pól dodajesz sufix z ID rekordu, np. <input type="text" name="title_<?php $rekord['id'] ?>" /> 3. przy odbieraniu formularza odczytujesz wartość tablicy z ID rekordów 4. w pętli przechodzisz i odczytujesz z POST dane dla każdego rekordu, np. $_POST['title_'. $id] Pozdrawiam Mógłbyś dać przykład do punktu 3,4? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 28 Dołączył: 9.08.2004 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Witam,
poniżej Twój kod poglądowo przerobiony na przykład:
Pozdrawiam |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, poniżej Twój kod poglądowo przerobiony na przykład:
Pozdrawiam Nie wywala mi błędów to znak że kod jest dobry. Wcześniej jak googlowałem i szukałem rozwiązania to zawsze coś nie tak było. Tylko teraz mam problem z warunkiem (chyba) w zapytaniu bo mi nie zmienia danych. Dawałem $_POST['idRekordow[], $idRekordow i nie aktualizuje danych. Co z tym? //edit i zmienna $idRekordu pokazuje wartość 3, oraz sufixy mam takie: <input type="text" class="textbox" value="'.$members['title'].'" name="title_'.$members['id'].'" size="8"/> i ukryte pole hidden takie: <input type="hidden" name="idRekordow[]" value="'.$members['id'].'"/> Ten post edytował dawidos_95 5.07.2013, 09:00:19 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
A tak nie byłoby prościej? Formularz:
Zapis do bazy:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
A tak nie byłoby prościej? Formularz:
Zapis do bazy:
Dzięki mistrzu! Działa (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:19 |