Samo zapamiętujące pola w formularzu - "lepkie pola"
Kiedy tworzymy formularze php z przeładowaniem na inna stronę, oraz formularz zgłosi błąd, wtedy po przyśnięciu przycisku "wstecz" formularz sie wyzeruje, często spotykane dalej na polskich stronach oraz irytujące dla użytkowników. Aby zapamiętać wpisane wartości user'a w polach potrzeba ustawić im wartości na elementy zawarte w tablicy POST lub GET (przykład korzysta z pierwszej tablicy).
Podany skrypt posiada formularz z czteroma lepkimi polami: pole wejściowe, select wielekrotnego wyboru, przycisk typu radio button, oraz przyciskiem "wyślij".
Listing
<form name="nazwa_formularza" method="post" action="plik-przetworzenia.php">
//pole wejściowe
<input type="input" name="imie" id="name" value="
<?php if(isset($_POST['imie']))
echo $_POST['imie'];
echo '" />'; ?>
<select name="zainteresowania[]" id="zainteresowania" size="6" multiple="multiple">
//pole wielokrotnego wyboru
<option value="wybrane"
<?php
if (!isset($_POST['zainteresowania']) || (isset($_POST['zainteresowania']) && in_array('wybrane', $_POST['zainteresowania']))) {
echo 'selected="selected"'; } ?>
</option>
<?php
while ($row = $zainteresowania->fetch_assoc()) {
echo '<option value="'.$row['zainteresowania_id'].'"';
if (isset($_POST['zainteresowania']) && in_array($row['zainteresowania_id'], $_POST['zainteresowania'])) {
echo 'selected="selected"';
}
echo '>'.$row['zainteresowania'].'</option>';
}
?>
</select>
//pole radio button
<input type="radio" name="plec" value="kobieta"
<?php
if (!$_POST || (isset($_POST['plec']) && $_POST['plec'] == 'kobieta')) {
echo 'checked="checked"';
}?> />
<input type="radio" name="plec" value="męźczyzna"
<?php if (isset($_POST['plec']) && $_POST['plec'] == 'męźczyzna')
echo 'checked="checked"'; ?> />
//pole wejściowe
<input type="input" name="imie" id="name" value="
<?php if(isset($_POST['imie']))
echo $_POST['imie'];
echo '" />'; ?>
<select name="zainteresowania[]" id="zainteresowania" size="6" multiple="multiple">
//pole wielokrotnego wyboru
<option value="wybrane"
<?php
if (!isset($_POST['zainteresowania']) || (isset($_POST['zainteresowania']) && in_array('wybrane', $_POST['zainteresowania']))) {
echo 'selected="selected"'; } ?>
</option>
<?php
while ($row = $zainteresowania->fetch_assoc()) {
echo '<option value="'.$row['zainteresowania_id'].'"';
if (isset($_POST['zainteresowania']) && in_array($row['zainteresowania_id'], $_POST['zainteresowania'])) {
echo 'selected="selected"';
}
echo '>'.$row['zainteresowania'].'</option>';
}
?>
</select>
//pole radio button
<input type="radio" name="plec" value="kobieta"
<?php
if (!$_POST || (isset($_POST['plec']) && $_POST['plec'] == 'kobieta')) {
echo 'checked="checked"';
}?> />
<input type="radio" name="plec" value="męźczyzna"
<?php if (isset($_POST['plec']) && $_POST['plec'] == 'męźczyzna')
echo 'checked="checked"'; ?> />
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno