Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wracającymi zmiennymi POST
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
grucha
Robię stronę, która pokazuje wszystkie rekordy w bazie z opcją filtrowania. Warunki filtrowania wybiera się za pomocą formularza.
Ponieważ każdy wynik będzie linkiem chcę uniknąc sytuacji kiedy po obejrzeniu szegółów wyniku ktoś kliknie wstecz i wysokczy mu tablica ze są zmienne POST.

Uznałem ze najpierw warunki filtrowania zapisze do sesji (zeby umial wyświetlić warunki) a potem odswieżę stronę pozbywając się zmiennych POST. Niestety nie działa bo przy ręcznym odświeżaniu ciągle wyskakuje informacja ze strona zawiera POSTDATA

  1. <?
  2. polacz();
  3. $query = mysql_query("SELECT * FROM `jezyki` ORDER BY `jezyk` ASC ;");
  4. rozlacz();
  5. $jezyk_z = '<option value="brak"></option>';
  6. $jezyk_na = '<option value="brak"></option>';
  7. For($i=0;$i<mysql_num_rows($query);$i++){
  8. $wiersz = mysql_fetch_array($query);
  9. If($wiersz['id'] == $_SESSION['jezyk_z_sesja']) $jezyk_z .= '<option selected value="'.$wiersz['id'].'">'.$wiersz['jezyk'].'</option>';
  10. Else $jezyk_z .= '<option value="'.$wiersz['id'].'">'.$wiersz['jezyk'].'</option>';
  11. If($wiersz['id'] == $_SESSION['jezyk_na_sesja']) $jezyk_na .= '<option selected value="'.$wiersz['id'].'">'.$wiersz['jezyk'].'</option>';
  12. $jezyk_na .= '<option value="'.$wiersz['id'].'">'.$wiersz['jezyk'].'</option>';
  13. }
  14.  
  15. If($_POST['filtrowanie'] == 'tak'){
  16. If(isset($_POST['jezyk_z'])) $_SESSION['jezyk_z_sesja'] = $_POST['jezyk_z'];
  17. If(isset($_POST['jezyk_na'])) $_SESSION['jezyk_na_sesja'] = $_POST['jezyk_na'];
  18. If($_POST['filtr_osoby_prywatne'] == 'on') $_SESSION['filtr_osoby_prywatne_check'] = 'checked';
  19. Else $_SESSION['filtr_osoby_prywatne_check'] = '';
  20. If($_POST['filtr_firmy'] == 'on') $_SESSION['filtr_firmy_check'] = 'checked';
  21. Else $_SESSION['filtr_firmy_check'] = '';
  22. If($_POST['filtr_biura_tlumaczen'] == 'on') $_SESSION['filtr_biura_tlumaczen_check'] = 'checked';
  23. Else $_SESSION['filtr_biura_tlumaczen_check'] = '';
  24. If($_POST['filtr_ojczysty'] == 'z') $_SESSION['filtr_ojczysty_z_select'] = 'selected';
  25. Else $_SESSION['filtr_ojczysty_z_select'] = '';
  26. If($_POST['filtr_ojczysty'] == 'na') $_SESSION['filtr_ojczysty_na_select'] = 'selected';
  27. Else $_SESSION['filtr_ojczysty_na_select'] = '';
  28. If($_POST['filtr_przysiegly'] == 'on') $_SESSION['filtr_przysiegly_check'] = 'checked';
  29. Else $_SESSION['filtr_przysiegly_check'] = '';
  30. }
  31.  
  32. If($_POST['filtrowanie'] == 'tak') echo '<META HTTP-EQUIV="Refresh" CONTENT="3; URL=http://localhost/~translatorzy/?akcja=przegladaj&filtr=tak">';
  33.  
  34. $filtr_form = '<Form action="" method="POST"><input type="hidden" name="filtrowanie" value="tak"><table width="196" border="0" cellspacing="1" cellpadding="4">
  35. <tr>
  36. <td bgcolor="#008000" class="naglowek_duzy">Filtrowanie:</td>
  37. </tr>
  38. <tr>
  39. <td bgcolor="#009900"><table width="190" border="0" cellspacing="0" cellpadding="0">
  40. <tr>
  41. <td colspan="2" class="tekst">tylko osoby prywatne
  42. <input type="checkbox" name="filtr_osoby_prywatne" '.$_SESSION['filtr_osoby_prywatne_check'].' value="on"></td>
  43. </tr>
  44. <tr>
  45. <td colspan="2" class="tekst">tylko firmy
  46. <input type="checkbox" name="filtr_firmy" '.$_SESSION['filtr_firmy_check'].' value="on"></td>
  47. </tr>
  48. <tr>
  49. <td colspan="2" class="tekst">tylko biura tłmaczeń
  50. <input type="checkbox" name="filtr_biura_tlumaczen" '.$_SESSION['filtr_biura_tlumaczen_check'].' value="on"> </td>
  51. </tr>
  52.  
  53. <tr>
  54. <td class="tekst" colspan="2">
  55. <table width="189" border="0" cellspacing="0" cellpadding="0">
  56. <tr>
  57. <td class="tekst">z:</td>
  58. <td align="right"><select name="jezyk_z" class="form_select_maly">
  59. '.$jezyk_z.'
  60. </select></td>
  61. </tr>
  62. <tr>
  63. <td class="tekst">na:</td>
  64. <td align="right"><select name="jezyk_na" class="form_select_maly">
  65. '.$jezyk_na.'</select></td>
  66. </tr>
  67. <tr>
  68. <td class="tekst">ojczysty</td>
  69. <td align="right"><select name="filtr_ojczysty" class="form_select_maly">
  70. <option value="nie"> </option>
  71. <option '.$_SESSION['filtr_ojczysty_z_select'].' value="z">z</option>
  72. <option '.$_SESSION['filtr_ojczysty_na_select'].' value="na">na</option>
  73. </select></td>
  74. </tr>
  75. </table>
  76. </td>
  77. </tr>
  78.  
  79. <tr>
  80. <td class="tekst" colspan="2">przysięgły
  81. <input type="checkbox" name="filtr_przysiegly" '.$_SESSION['filtr_przysiegly_check'].' value="on"></td>
  82. </tr>
  83. <tr>
  84.  
  85. <td colspan="2" align="right"><br>
  86. <input type="submit" class="form_submit" value="Filtruj"></td>
  87. </tr>
  88. </table></td>
  89. </tr>
  90. </table></form>';
  91.  
  92.  
  93.  ?>
MatheW
Możesz od razu przejść do nowej strony nic nie wyświetlajac przez
  1. <?php
  2. header ("Location : strona.php");
  3. ?>
albo na końcu formularza utwórz zmienną sesyjną i sprawdzaj czy ona istnieje, a po wykonaniu stosownekj akcji usuń ja, by drugi raz dane nie były przetważane.
grucha
Dzięki, nie pomyślałem
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.