![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 30.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Właśnie tworze małą aplikację (w oparciu o PHP i Mysql), w której użytkownik będzie miał możliwość zarejestrowania się , zalogowania i edytowania swoich danych po pomyślnym zalogowaniu. Konstrukcja tabeli w bazie danych jest standardowa (Pierwsze pole to oczywiście id jako Integer, auto increment i primery key. Reszta pól to Varchar not null m.in dla nazwiska, imienia, pseudonimu, email itd ). Zapytanie sql wygląda tak
Na chwile obecną gdy użytkownik będzie chciał edytować np tylko name a pozostałe pola formularza pozostawi puste (nic w nie wpisując) to te "puste wartości " z pozostałych pol nadpiszą w bazie danych pola wypełnione podczas rejestracji (czyli je wykasują pozostawiając pustą wartość). Jak osiągnąć taki efekt aby tylko wpisane wartości w formularzu HTML były uaktualniane a te nie wpisane po prostu się nie uaktualniały. Próbowałem następujących rozwiązań Kod $this->name = (isset($_POST['name']) == TRUE && !empty($_POST['name']) == TRUE) ? $this->filter($_POST['name']) : null; zamieniałem również null na false i '' (pusty string ) ale efekt był ten sam. filter z kodu powyżej to funkcja (metoda), która przy pomocy wyrażeń regularnych określa co może się znaleźć w bazie danych. Z góry dzięki za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wyświetlając użytkownikowi forma, gdzie może zmieniać swoje dane, wypełnij pola tego forma jego danymi z bazy. Wówczas nie będziesz miał problemu że coś co nie chciał zmieniać zostawi puste. Gdy ty mu wypełnisz forma jego danymi, to to czego nie będzie chciał zmieniać zostawi jak jest i wszystko będzie w porządku. Tak się robi w 99% formularzy do edycji danych.
ps: przenosze na przedszkole bo z samą bazą problem ma niewiele wspólnego |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 30.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
można te pola w formularzu jakoś inaczej wypełnić danym niż zmiennymi sesyjnymi
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pobierasz z bazy i wypełniasz.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 30.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
a jak podczas edytowania danych uzyskać taki efekt aby wartości (values w polach formularza html) aktualizowały się od razu po naciśnięciu przycisku submit a nie dopiero po naciśnięciu np któregoś z linków
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie kumam... każdy normalny formularz reaguje na submit i wysyła cały formularz z którym robisz co chcesz.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 30.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
zgadza się ale chodzi mi o to że do naciśnięcia submit mam w polach formularza wartości z bazy danych (mysql) Następnie wpisuje coś innego w polu input żeby updejtować baze danych i faktycznie tak się dzieje po naciśnięciu submit z tym że w tym momencie w tym polu pojawia się wartość stara (jeszcz nie zmieniona) z bazy danych która się dopiero zmienia po kolejnym przeładowaniu strony
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Przenieś obsługę submita przed formularz, albo po wykonaniu daj header('Location :...')
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 08:27 |