Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usunięcie diva
Forum PHP.pl > Forum > PHP
bartex9
Witam,
Mam formularz kontaktowy. Oto jego źródło:

  1. <?php
  2. include ('ustawienia.php');
  3.  
  4. include('formularz.php');
  5. $formularz = ob_get_contents();
  6.  
  7.  
  8. function wyswietl_forme($komunikat='') {
  9. global $formularz;
  10.  
  11. $do_zmiany = array(
  12. '#komunikat#',
  13. '#strona#',
  14. '#nick#',
  15. '#mail#',
  16. '#temat#',
  17. '#zdjecie#',
  18. '#tresc#'
  19. );
  20. $zmien_na = array(
  21. $komunikat,
  22. $_SERVER['REQUEST_URI'],
  23. $_POST['nick'],
  24. $_POST['mail'],
  25. $_GET['temat'],
  26. $_GET['zdjecie'],
  27. $_POST['tresc']
  28. );
  29.  
  30. $formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);
  31.  
  32. return $formularz;
  33. }
  34.  
  35. function waliduj() {
  36. global $komunikat;
  37. global $valid;
  38.  
  39. if( $valid['nick'] > 0 ) {
  40. if(strlen($_POST['nick']) < $valid['nick'] ){
  41. $walidacja['nick'] = $komunikat['nick'];
  42. }
  43. }
  44.  
  45. if( $valid['mail'] == 1 ) {
  46. if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
  47. $walidacja['mail'] = $komunikat['mail'];
  48. }
  49. }
  50.  
  51. if( $valid['temat'] > 0 ) {
  52. if(strlen($_POST['temat']) < $valid['temat'] ){
  53. $walidacja['temat'] = $komunikat['temat'];
  54. }
  55. }
  56. if( $valid['zdjecie'] > 0 ) {
  57. if(strlen($_POST['zdjecie']) < $valid['zdjecie'] ){
  58. $walidacja['zdjecie'] = $komunikat['zdjecie'];
  59. }
  60. }
  61.  
  62. if( $valid['tresc'] > 0 ) {
  63. if(strlen($_POST['tresc']) < $valid['tresc'] ){
  64. $walidacja['tresc'] = $komunikat['tresc'];
  65. }
  66. }
  67.  
  68. if(empty($walidacja)) {
  69. return 'true';
  70. }else{
  71. return $walidacja;
  72. }
  73.  
  74. }
  75.  
  76. // Działanie
  77.  
  78. <div id="bleble">
  79. <p>'.$komunikat['start'].'</p>
  80. </div>';
  81.  
  82. if (($_SERVER['REQUEST_METHOD'] == 'POST')) {// wejście postem
  83. $walidacja = waliduj();
  84. if ($walidacja == 'true'){ //poprawnie wypełniony formularz
  85.  
  86.  
  87. if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['temat'])."?=",'<p>Od: <b>'.$_POST['nick'].'</b></br>
  88. Zdjęcie: <b>'.$_POST['zdjecie'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces
  89. <div id="sukces">
  90. <p>'.$komunikat['sukces'].'</p>
  91. </div>
  92. ';
  93. }else{ //bląd serwera
  94. print '
  95. <div id="blad">
  96. <p>'.$komunikat['fail'].'</p>
  97. </div>
  98. ';
  99. print wyswietl_forme();
  100. }
  101.  
  102. }else{
  103. //błędna walidacja
  104.  
  105. $blad_walidacji = $walidacja;
  106.  
  107. $blad_walidacji = '
  108. <div id="blad">
  109. <p>'.$komunikat['blad'].'</p>
  110. <ul>
  111. ';
  112. foreach ($walidacja as $wpis) {
  113. $blad_walidacji .= '<li>'.$wpis.'</li>';
  114. }
  115. $blad_walidacji .= '
  116. </ul>
  117. </div>
  118. ';
  119.  
  120. print wyswietl_forme($blad_walidacji);
  121. }
  122.  
  123. }else{
  124. // nowe wejście
  125. print wyswietl_forme();
  126. }
  127.  
  128. ?>



Interesuje mnie taka sprawa. W 80 linii mam diva, który wyświetla mi komunikat. Chcę jednak, aby on zniknął po wykonaniu linii 86. Jest to możliwe? Jak to zrobić? Jestem raczej początkujący w tych sprawach więc proszę konkretnie mi napisać co i gdzie powinienem wstawić. Z góry dzięki smile.gif
jakub.drag
w lini 88, wklej krótki kodzik js, który będzie ukrywał diva. Dużo jest takich kodów, wpisz do googli: Ukrywanie diva. Moższ pokombinować ze zdarzeniami, ale najlepiej, jak komunikat będzie ukrywał się od razu po wejściu na stronę.
bartex9
Próbowałem dodać jakieś skrypty z Google ale albo nie umiem wstawić albo nie działają. Może ja wytłumaczę dokładnie o co mi chodzi. Mam formularz kontaktowy:

http://jurajskawioskarodaki.cba.pl/pop/?zdjecie=d23

Na początku jest krótki wstęp. To on ma potem zniknąć. Po wypełnieniu formularza i kliknięciu na "Wyślij" mogą pojawić się z zależności od poprawności wypełnienia formularza 2 komunikaty. Wiadomość została wysłana lub błąd. No ale właśnie nie znika mi wtedy ten wstęp. Widać więc ten wstęp i komunikat. Chciałbym, żeby po kliknięciu na Wyślij ten wstęp zniknął.
jakub.drag
w divie o identyfikatorze błąd i sukces, między znacznikami < i > należy wkleić kod do ukrywania diva o identyfikatorze bleble. Skryptu niestety musisz poszukać, ale aby go wywołać, robisz tak: "ubierasz" całą stronę w div
  1. <div id="glowny" onmouseover="POLECENIE JS">CAŁA TREŚĆ STRONY</div>

POLECENIE JS to kawałek kodu js który wywoła skrypt ukrywający tego diva.

Trechę przekombinowane, ale działać będzie - wybacz, jestem na 3 polopirynach wink.gif


Ech, mam jeszcze jedno - najłatwiejsze - ten komunikat żeby był w innym miejscu czy coś... Żeby się pojawiał przy edycji pierwszego pola, a potem znikał. To będzie chyba najlepsze rozwiązanie.
bartex9
Nie głupi pomysł, ale już zrobiłem to jeszcze inaczej. Komunikat ten dałem jakby kolejne pole w formularzu, tylko że nic tam się nie zmienia - trudno mi się wyrazić wink.gif
Jeżeli w formularzu przy wypełnianiu zrobimy błąd, pojawi się komunikat o błędzie ale ten "startowy" zostanie. Jeśli jednak wiadomość wyśle się z powodzeniem, to znika i pojawia się tylko komunikat o sukcesie.

Efekt:

http://jurajskawioskarodaki.cba.pl/formula...?zdjecie=bleble


Dzięki za pomoc smile.gif
benio101
Linijki 80-83 włącznie przesuń za 85. i po problemie.
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.