Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Problem z czyszczeniem pól formularza
Forum PHP.pl > Forum > Przedszkole
slawak1
Witam.. Jest to mój pierwszy skrypt w PHP, zresztą prosty jak widać. Problem polega na tym, że gdy w polu formularza wpiszemy wartość np. ujemną i wyświetla nam stosowny komunikat, pola formularza zostają wyczyszczone. Chciałbym tego uniknąć, tak by można poprawić błędną wartość, zachowując pozostałe pola.

Na obecną chwilę skrypt też jest na stronie www.globalexpress.ie

Pozdrawiam serdecznie.

  1. <form action="#cennik#" method="post" id="cennik">
  2. <input type="number" name="a" id="a"/>długość
  3. <input type="number" name="b" id="b"/>wysokość
  4. <input type="number" name="c" id="c"/>szerokość
  5. <div>
  6.  
  7. <input type="number" name="d" id="d"/>waga
  8. </div>
  9. <div>
  10. <input type="submit" name="submit" id="submit" value="oblicz" />
  11. </div>
  12. </form>
  13.  
  14. <?php
  15.  
  16. $_POST['a'];
  17. $_POST['b'];
  18. $_POST['c'];
  19. $_POST['d'];
  20.  
  21. $komunikat['a'] = '<div id="blad">Twoja paczka jest za długa, </ br></div>';
  22. $komunikat['b'] = '<div id="blad">Twoja paczka jest za wysoka, </ br></div>';
  23. $komunikat['c'] = '<div id="blad">Twoja paczka jest za szeroka, </ br></div>';
  24. $komunikat['suma'] = '<div id="blad">Twoja paczka jest za duża, suma boków powinna być mniejsza niż 300 cm</ br></div>';
  25. $komunikat['dlugosc'] = '<div id="blad">Podałeś nie poprawną długość, długość nie może być ujemna ani równa 0</ br></div>';
  26. $komunikat['wysokosc'] = '<div id="blad">Podałeś nie poprawną wysokość, wysokość nie może być ujemna ani równa 0</ br></div>';
  27. $komunikat['szerokosc'] = '<div id="blad">Podałeś nie poprawną szerokość, szerokość nie może być ujemna ani równa 0</ br></div>';
  28. $komunikat['waga'] = '<div id="blad">Podałeś niepoprawną wagę, waga nie może być ujemna ani równa 0.</ br></div>';
  29. $komunikat['d'] = '<div id="blad">Twoja paczka jest za ciężka. Maksymalnie może ważyć 50 kg.</ br></div>';
  30.  
  31. function waliduj(){
  32.  
  33. global $walidacja;
  34. global $komunikat;
  35. $suma = $_POST['a']+$_POST['b']+$_POST['c'];
  36.  
  37. if ($_POST['a'] <= 0){
  38. $walidacja = $komunikat['dlugosc'];
  39. }else{
  40. if ($_POST['a'] > 200){
  41. $walidacja = $komunikat['a'];
  42. }
  43. }
  44.  
  45. if ($_POST['b'] <= 0){
  46. $walidacja = $komunikat['wysokosc'];
  47. }else{
  48. if ($_POST['b'] > 200){
  49. $walidacja = $komunikat['b'];
  50. }
  51. }
  52.  
  53. if ($_POST['c'] <= 0){
  54. $walidacja = $komunikat['szerokosc'];
  55. }else{
  56. if ($_POST['c'] > 200){
  57. $walidacja = $komunikat['c'];
  58. }
  59. }
  60.  
  61. if ($_POST['d'] <= 0){
  62. $walidacja = $komunikat['waga'];
  63. }else{
  64. if ($_POST['d'] > 50){
  65. $walidacja = $komunikat['d'];
  66. }
  67. }
  68.  
  69. if ($suma > 300){
  70. $walidacja = $komunikat['suma'];
  71. }
  72. if (empty($walidacja)){
  73. return 'true';
  74. }else{
  75. echo $walidacja;
  76. }
  77. }
  78.  
  79. if (($_SERVER['REQUEST_METHOD'] == 'POST')) {
  80. $walidacja = waliduj();
  81. if ($walidacja == 'true'){
  82. echo '<br>';
  83. $suma = $_POST['a']+$_POST['b']+$_POST['c'];
  84. if ($suma<300 && $_POST['d']<50){
  85. echo '
  86. <div id="sukces">
  87. Twoja paczka może być wysłana
  88. </div>';
  89. }
  90. }
  91. }
  92.  
  93. ?>
  94.  
  95.  
cer98
  1. <?php
  2.  
  3. $zmienna = $_GET['a'];
  4.  
  5. print '<form action="skryptt.php" action="post" method="">
  6. <input type="number" name="a" id="a" value="$zmienna" />
  7. </form>';
  8.  
  9. ?>


Zmienną get możesz przesłać $_GET w linku, z którego robisz przekierowanie ze strony odbierającej dane przez nagłówek header().

A jak nie, to tablica sesji.
slawak1
Dzięki za podpowiedź wink.gif

Już wszystko gra jak należy.

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