Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wypełnione pola formularza po cofnięciu strony wstecz
Forum PHP.pl > Forum > Przedszkole
amii
Mam formularz polami input text, input radio, input select. Chcę zrobić coś takiego aby użytkownik po wypełnieniu i przesłaniu formularza kiedy się cofnie strzałką w przeglądarce widział poprzednio wpisane wartości.
Ma ktoś pomysł jak to rozwiązać JS, php, sesje ?
muk4
Było całkiem niedawno na forum - użyj wyszukiwarki.
Wszystko było oparte na sesjach.
motyl-pl
Nie muszą to być sesje, może być np.
Kod
<input name="asd" type="text" value="<?php echo $_POST['asd']; ?>" />
amii
No niestety nie działa. Formularz mam w pliku formularz.php a dane przesyłam do index.php w obydwu plikach na samym początku dałem session_start(); w pliku index dałem:

  1. foreach( $_POST as $key => $value ) {
  2. $_SESSION[$key] = $value;
  3. }


żeby dać dane z POST do sesji, po kliknięciu strzałki wstecz wywala mi jakieś wartości undefined
W formularzu (formularz.php) mam dane wyświetlane tak:

  1. <td class="inna" colspan="2">
  2. <input type="text" name="waga" id="waga" class="i1" onkeyup="zmienPrzecinekNaKropke(this.id)" onChange="sprawdzWage()" MAXLENGTH="3" value="'.$_SESSION['waga'].'">&nbsp;kg
  3. </td>
  4.  
  5. td class="inna" colspan="2">
  6. <input type="text" name="wzrost" id="wzrost" class="i1" onkeyup="zmienPrzecinekNaKropke(this.id)" onChange="sprawdzWzrost()" MAXLENGTH="3" value="'.$_SESSION['wzrost'].'">&nbsp;cm wzrostu
  7. </td>
  8.  


Heh już działa miałem w jednym z plików js czyszczenie elementów formularza i to przyczyna dlaczego mi nie wyświetlał danych.

Tylko teraz jak to zrobić dla przycisków radio aby po naciśnięciu przez usera przycisku wstecz wracał do formularza z odpowiednio zaznaczonym przyciskiem ?
muk4
Zapisz sobie do odpowiedniej zmiennej 'checked="checked"' i potem to dodaj do inputa w formularzu.

  1. $pole1 = 'checked="checked"'; //chcesz domyślnie zaznaczyć pole1
  2. echo '<input type="radio" name="nazwa" value="wartość" '.$pole1.' />';
  3. echo '<input type="radio" name="nazwa" value="wartość" '.$pole2.' />'
amii
Hmm muk4 nie kapuję za bardzo tego co napisałeś. Może jeszcze raz opiszę bardziej szczegółowo co wykombinowałem:

po session_start() w pliku formularz.php dałem:

  1. switch ($_SESSION['zolodek']) {
  2. case 'pusty': $zmienna = '<input type="radio" name="zoladek" value="pusty" CHECKED>&nbsp;pusty<br>
  3. <input type="radio" name="zoladek" value="pelny1/2" >&nbsp;w połowie pełny<br>
  4. <input type="radio" name="zoladek" value="pelny">&nbsp;pełny żołądek';
  5. break;
  6.  
  7. case 'pelny1/2': $zmienna = '<input type="radio" name="zoladek" value="pusty" >&nbsp;pusty<br>
  8. <input type="radio" name="zoladek" value="pelny1/2" CHECKED>&nbsp;w połowie pełny<br>
  9. <input type="radio" name="zoladek" value="pelny">&nbsp;pełny żołądek';
  10. break;
  11.  
  12. case 'pelny': $zmienna = '<input type="radio" name="zoladek" value="pusty" >&nbsp;pusty<br>
  13. <input type="radio" name="zoladek" value="pelny1/2" >&nbsp;w połowie pełny<br>
  14. <input type="radio" name="zoladek" value="pelny" CHECKED>&nbsp;pełny żołądek';
  15. break;
  16.  
  17. default: $zmienna = '<input type="radio" name="zoladek" value="pusty" >&nbsp;pusty<br>
  18. <input type="radio" name="zoladek" value="pelny1/2" CHECKED>&nbsp;w połowie pełny<br>
  19. <input type="radio" name="zoladek" value="pelny" >&nbsp;pełny żołądek';
  20. }


To jest jednak źle bo $_SESSION['zolodek'] nie przekazuje żadnej wartości. Pole formularza wygląda tak:

  1. $html = '<td class="inna" colspan="2">
  2.  
  3. '.$zmienna. '
  4.  
  5. </td>';


Więc problemem jest aby z sesji odczytać zawartość wcześniej klikniętego pola radio a następnie odpowiednie pole radio wyświetlić.
muk4
Ja napisałem takie coś:
  1. session_start(); //ustawia sesje
  2. if(isset($_POST['submit'])){ //po wyslaniu formularza wykonuje sie ten kod
  3.  
  4. $radio = array();
  5. $radio[$_POST['radio']] = 'checked="checked"';
  6. $_SESSION['radio'] = $radio;
  7.  
  8. } else { //wyswietla formularz
  9.  
  10. echo '<form action="test.php" method="post">
  11. test:<input type="text" name="test"/>
  12. <input type="radio" name="radio" value="1" '.$_SESSION['radio']['1'].'/>1
  13. <input type="radio" name="radio" value="2" '.$_SESSION['radio']['2'].'/>2
  14. <input type="submit" name="submit"/>
  15. </form>
  16. ';
  17. }
bastard13
  1. <input type="radio" name="moje_radio" value="wartosc1"<?php echo ($_SESSION['moje_radio']=='wartosc1' ? ' checked="checked"' : '')?> />
  2. <input type="radio" name="moje_radio" value="wartosc2"<?php echo ($_SESSION['moje_radio']=='wartosc2' ? ' checked="checked"' : '')?> />

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.