Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Bootstrap - polaczenie ramki modalnej z formularzem php
awek320
post 19.10.2017, 20:13:28
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 17.11.2014

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


Witam. Mam problem z wiadomoscia zwrotna w ramce modalnej.
Gdy jest blad wszystko jest ok. Ale gdy formularz sie wysle to strona sje odswieza.. i ramki nie ma..

Prosze o pomoc


  1. <!-- contact -->
  2.  
  3. <div class="contact-section">
  4. <div class="ear-piece">
  5. <img class="img-responsive" src="images/contact_graphic.png" alt="">
  6. </div>
  7. <div class="container">
  8. <div class="row">
  9. <div class="col-sm-3 col-sm-offset-4">
  10. <div class="contact-text">
  11. <h3>Kontakt</h3>
  12. <address>
  13.  
  14. </address>
  15. </div>
  16. </div>
  17. <div class="col-sm-5">
  18. <div id="contact-section">
  19. <h3>Zapytaj o wolny termin</h3>
  20. <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="<?php $wyslij ?>">
  21. <div class="form-group">
  22. <input type="text" name="name" class="form-control" required="required" placeholder="Imię i Nazwisko">
  23. </div>
  24. <div class="form-group">
  25. <input type="email" name="email" class="form-control" required="required" placeholder="Adres E-mail">
  26. </div>
  27. <div class="form-group">
  28. <input type="text" name="termin" class="form-control" required="required" placeholder="Termin imprezy">
  29. </div>
  30. <div class="form-group">
  31. <textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Treść wiadomości"></textarea>
  32. </div>
  33. <div class="form-group">
  34. <button type="submit" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal" name="wyslij">Wyślj</button>
  35. </div>
  36. </form>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. </section>
  43.  
  44. <!-- wysylanie wiadomości-->
  45. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  46. <div class="modal-dialog" role="document">
  47. <div class="modal-content">
  48. <div class="modal-header">
  49. <h2 class="modal-title" id="myModalLabel"><p style="color: black;">Formularz kontaktowy</p></h2>
  50. </div>
  51. <div class="modal-body">
  52. <?php echo $item->body; ?>
  53. <p style="color: black;">
  54. <?php
  55. if ($_POST["wyslij"]) {
  56.  
  57. $name = @trim(stripslashes($_POST['name']));
  58. $email = @trim(stripslashes($_POST['email']));
  59. $termin = @trim(stripslashes($_POST['termin']));
  60. $subject = @trim(stripslashes($_POST['subject']));
  61. $message = @trim(stripslashes($_POST['message']));
  62. $email_from = $email;
  63. $email_to = 'slawek.krybus@gmail.com';//replace with your email
  64.  
  65. $body = 'Imię i Nazwisko: ' . $name . "\n\n" . 'Email: ' . $email . "\n" . 'Termin: ' . $termin . "\n\n" . $message;
  66.  
  67. $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
  68. echo 'Wiadomość została wysłana';
  69. }
  70. else {
  71.  
  72. if (($name == "") || ($email == "") || ($termin == "") || ($message == ""))
  73.  
  74. echo 'Nie mozesz'; }
  75. ?>
  76. </p>
  77. </div>
  78. <div class="modal-footer">
  79. <button type="button" class="btn btn-primary pull" data-dismiss="modal">Powrót</button>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. <!--/#wysylanie wiadomości-->


Wiem ze kod php formularza jest zle napisany ale to i tak nie powinno ma poczatku miec jakies znaczenie
Go to the top of the page
+Quote Post
Tomplus
post 19.10.2017, 22:07:58
Post #2





Grupa: Zarejestrowani
Postów: 1 837
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

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


Ustaw sobie że po przeładowaniu na przed modalem:

  1. if(isset($_POST["wyslij"])) {
  2. $pokazModal = ' in';
  3. }


a w klasie CSS deklarujący styl modal

Kod
class="modal fade {$pokazModal}"
Go to the top of the page
+Quote Post
awek320
post 20.10.2017, 09:12:54
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 17.11.2014

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


Powiem szczerze że nie wiem za bardzo jak i o o chodzi..

Go to the top of the page
+Quote Post
Tomplus
post 20.10.2017, 16:47:33
Post #4





Grupa: Zarejestrowani
Postów: 1 837
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

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


1. Chcesz aby modal po odświeżeniu się pojawił?
2. Chcesz aby w tym modalu był komunikat (np. zapis się udał)

Tak?
Powyżej przedstawiłem przykład jak zrobić aby po zapisie formularza aby modal pojawił się od razu na stronie, rozszerzając tą funkcję możesz wygenerować także komunikat.
Go to the top of the page
+Quote Post
awek320
post 20.10.2017, 18:42:05
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 17.11.2014

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


Tak tak.. ale nie wiem dlaczego strona sie przeladowuje.. gdyby sie nie przeladowywala to komunikat by zostawal..
Go to the top of the page
+Quote Post
Tomplus
post 20.10.2017, 21:06:38
Post #6





Grupa: Zarejestrowani
Postów: 1 837
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

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


W tym kodzie co pokazałeś nie ma innego sposobu jak przeładowanie się strony, bo aby się nie przeładowała to musiałby zapis być wykonany przez JS.
Kodu JS nie podałeś.

Po prostu porównaj sobie kod gdy zwraca Ci błąd, z kodem który tego błędu nie ma.
Go to the top of the page
+Quote Post
awek320
post 23.10.2017, 09:19:58
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 17.11.2014

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


To zostawmy juz te przeladowywanie..

Ale to tak czy siak okno modalne powinno sie pokazywac tak ? A nie znikac zaraz po odswiezeniu..

Prosze o pomoc bo juz naprawde nie wiem jak to zrobic..
Go to the top of the page
+Quote Post
Tomplus
post 23.10.2017, 13:57:44
Post #8





Grupa: Zarejestrowani
Postów: 1 837
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

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


Modal to zwykła warstwa HTML która zostaje odkryta po instrukcji skryptu JavaScript.

Więc jest rzeczą logiczną że po przeładowaniu strony (odświeżenie strony też nim jest) modal zniknie, chyba że zażądamy dodatkowego zainicjowania modalu. Tak jak podałem na przykładzie.

Jeżeli ma nie znikać, to musisz zrobić tak aby strona gdzie jest modal nie odświeżał się przez formularz, a poprzez JS.
(wysyłasz zapytanie poprzez JS do przygotowanego pliku PHP, a ten odpowiada tworząc od nowa cały formularz, albo jedynie wyświetlając odpowiedni komunikat.)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 04:24