z Twojej wypowiedzi wynika, że zapisuje poprawnie ale po wyslaniu wraca do początku, to normalne, formularz trzeba zainicjować danymi wstepnymi i moga to być dane z $_POST
rozwiązaniem jest podanie domyślnej wartości pól formularza, jeżeli wcześniej cos wysłano:
1. sprawdzić czy wysłano ->
Kod PHP:
if (isset($_POST['nazwapola'])) {
$nazwapola = htmspecialchars($_POST['nazwapola']);
// inne funkcje sprawdzajace czy wpisano to czego oczekujemy
} else {
// nasza warosc domyslna gdy człek wchodzi do formularza
$nazwapola = '5';
}
2. ustawic wartosc poczatkowa ->
Kod HTML:
<input ... value="<?php echo $nazwapola;?>"/>
* to sa absolutnie elementarne rozwiazania, celowo rozdzielam sprawdzenie od wpisania, poniważ wypadałoby jeszcze sprawdzic czy wypełnione dane spełniaja nasze kryteria, czyli poza samym isset dodatkowo sprawdzic czy to liczba z przedziału itp... jeżeli nie to ustawić pustą wartość
selecty najlepiej walidowac tablicami -> sprawdzamy czy wartosc znajduje sie w tablicy dopuszczalnych wartosci, do dobrej praktyki nalezy rowniez generowanie i walidowanie selecta z jednej tablicy
a) definiujemy tablice wartosci
b) generujemy liste opcji przez foreach na tej tabeli
c) sprawdzamy dane od usera z tą samą tablicą
ŻADNYM danym od usera nie możesz ufać
1. nie zalecam sprawdzania danych przez JS, chyba tylko alert na puste pola jako gadżet, niepustość i tak trzeba sprawdzić potem w php
2. nie uchroni Cie select ani ukryte pola formularza, dowolne dane post mozna wysylac do formularzy z pomoca biblioteki curl
3. dla formularzy 2 stopniowych wystarczy inicjowanie danymi z odfiltrowanego (minimum htmlspecialchars) POST, przy wielostopniowych nie unikniesz użycia sesji lub Joomlowego schowka własnych zmiennych w $mainframe (to obiekt, ktory udostepnia metody przechowywania wlasnych danych)