Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gromadzenie danych w kilku krokach i cofanie się
Forum PHP.pl > Forum > PHP
novice_user
Witam

Chciałbym prosić o poradę czy moje zamierzenia dotyczące rozwiązania tego problemu są słuszne.
Zapewne problem ten może być rozwiązany w inny lepszy sposób zatem będę wdzięczy także za opinię jak mogę to zrobić inaczej.

Problem
Za pośrdenictwem kilku kolejno wywoływanych stron tworzę plan rozumiany jako szereg punktów, podpunktów i powiązanych z nimi plików:

Krok 1. Pobranie ogólnych danych - data, nazwa itp
Krok 2. Zdefiniowanie ilosci punktów planu(wraz z ich opisami) i podpunktów dla każdego punktu. Użytkownik tworzy dynamicznie formularz dodając kolejne inputy.
Krok 3. Utworzenie dla każdego z punktów inputów dla podpunktów, użytkownik wpisuje nazwy.
Krok 4. Uzytkownik może dla każdego z podpunktów wysłać dowolną liczbę plików - uploaduje je inny skrypt i wraca do kroku 4 z uaktualnionym widokiem.
Krok 5. Zapisanie wszystkich punktów, podpunktów ich hierarchii do bazy.

W czym kłopot

1. Na każdym etapie dane odczytane z formularza są dodawane do obiektu zapisanego w zmiennej sesji, który w swej strukturze odzwierciedla docelową hierarchię (tablice podpunktów, nazw plików itp). Dodałem jednak plik Wstecz smile.gif i w tym rzecz. Chciałbym aby użytkownik mógł się cofnąć i zmodyfikować swoje wybory.
Obecnie dodałem w każdej stronie zmienne informujące skąd przyszło żadanie (czy wsteczne czy nie) i w każdej stronie warunek czy ma czytac dane z formularza czy też z istniejącej już i uzupełnionej wcześniej zmiennej sesji. Ale to załatwiło mi problem cześciowo: Użytkownik w kroku 3 uzupełnia punkty, przechodzi do punktu 4, cofa się do 3 punkty są uzupełnione, cofa się do punktu 2, usuwa jeden punkt, strona z kroku 3 czyta formularz i dodaje czyste pola. Bo jak ma wiedzieć czy moją intencją jest dodanie od nowa czy tylko edycja.
Podejrzewam że problemów będzie więcej, np użytkownik cofnie się z punktu 4 do 2 bezpośrednio.

Także chciałby zapytać jak powinno się rozwiązać takie kilkukrokowe gromadzenie danych. Dodam że jest to element pisanego przeze mnie CMSa i wykluczam zastosowanie gotowego Systemu.

Dzięki za wytrwałość w czytaniu posta i jakąś poradę smile.gif
Pozdrawiam
Athlan
Jeżeli użytkownik cofnie się do punktu drugiego z pubktu czwartego i usunie opcje po czym prześle dane wówczas wszystko powinno zmienić się w punkcie trzecim nieprawdaż?

Radzę Ci zapisanie całegj tabluicy $_POST do $_SESSION i odpowiednie wywoływanie danych w nastepnych krokach.

Następną możliwością jest wykonanie jednego kroku, który umożliwi wygenerowanie takiego formularza jakiego chcesz na jednej stronie. Od czego jest JavaScript. Problem z "krokami" zniknąłby. Gdy dodasz pole automatycznie pojawiłby się przycisk z dodaniem podpól.

Pozdrawiam, Athlan smile.gif
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.