Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wypełnione pola formularza po cofnięciu strony wstecz
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
muk4
post
Post #2





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Było całkiem niedawno na forum - użyj wyszukiwarki.
Wszystko było oparte na sesjach.
Go to the top of the page
+Quote Post
motyl-pl
post
Post #3





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

Ostrzeżenie: (0%)
-----


Nie muszą to być sesje, może być np.
Kod
<input name="asd" type="text" value="<?php echo $_POST['asd']; ?>" />
Go to the top of the page
+Quote Post
amii
post
Post #4





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
muk4
post
Post #5





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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.' />'


Ten post edytował muk4 8.07.2010, 12:22:10
Go to the top of the page
+Quote Post
amii
post
Post #6





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
muk4
post
Post #7





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował muk4 8.07.2010, 13:47:23
Go to the top of the page
+Quote Post
bastard13
post
Post #8





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  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"' : '')?> />

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 01:28