• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Potwierdzenie maila wyskakujące w modal Bootstrap

Mały hosting, OGROMNE możliwości
0 głosów
723 wizyt
pytanie zadane 11 sierpnia 2017 w HTML i CSS przez pysilla Użytkownik (560 p.)

Chciałabym umieścić powiadomienie z formularza kontaktowego o poprawnie wypełnionym mailu i informacji, że odezwiemy się oraz info o błędzie, w oknie modalnym bootstrap. Wszystko dzieje się po kliknięciu na przycisk "submit" Problemy są dwa:

1. Okno modalne bardzo szybko znika, tak że tylko sekundę można załapać treść.

2. Treść rezultatu php się nie wyświetla. Mimo, że wyświetla się w przypadku prób w innych miejscach na stronie.

 

Będę wdzięczna za pomoc.

<?php
	if (isset($_POST["submit"])) {
		$name = $_POST['name'];
		$email = $_POST['email'];
		$message = $_POST['message'];
		$human = intval($_POST['human']);
		$from = 'Formularz kontaktowy'; 
		$to = 'ktos@gmail.com'; 
		$subject = 'Wiadomość z formularza kontaktowego ';
		
		$body ="From: $name\n E-Mail: $email\n Message:\n $message";
		if (!$_POST['name']) {
			$errName = 'Proszę wpisz swoje imię i nazwisko';
		}
		
		if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
			$errEmail = 'Proszę wpisz poprawny adres e-mail';
		}
		
		if (!$_POST['message']) {
			$errMessage = 'Proszę wpisz swoją wiadomość';
		}
		if ($human !== 5) {
			$errHuman = 'Twój wynik nie jest poprawny';
		}
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
	if (mail ($to, $subject, $body, $from)) {
		$result='<div class="alert alert-success">Dziękujęmy! Odezwiemy się w ciągu 24 godzin.</div>';
	} else {
		$result='<div class="alert alert-danger">Przepraszamy. Nastąpił błąd przy wysyłaniu wiadomości. Spróbój ponownie później.</div>';
	}
}
	}
?>

 

                 <div class="modal" id="result" tabindex="-1">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Zamknij"><span aria-hidden="true">&times;</span></button>
                    </div>
                    <div class="modal-body">
                            <?php echo $result; ?>

                    </div>
                    <div class="modal-footer">
                        <p>yo man</p>
                    </div>
                </div>
            </div>
        </div>          

 <section id="contact">
                        <div class="container">
                            <div class="row">
                                <div class="page-header col-xs-12">
                                    <h1>Kontakt</h1>
                                </div>
                                <div id="form">
                                    <div class="col-xs-12 col-sm-12 col-md-6">
                                        <h2 class="text-center">Formularz kontaktowy</h2>
                                        <form class="form-horizontal" role="form" method="post" role="dialog">
                                            <div class="form-group">
                                                <label for="name" class="col-xs-3 control-label">Imię i nazwisko</label>
                                                <div class="col-sm-9">
                                                    <input type="text" class="form-control" id="name" name="name" placeholder="Imię i nazwisko" value="<?php echo htmlspecialchars($_POST['name']); ?>">
                                                    <?php echo "<p class='text-danger'>$errName</p>";?>
                                                </div>
                                            </div>
                                            <div class="form-group">
                                                <label for="email" class="col-xs-3 control-label">Email</label>
                                                <div class="col-xs-9">
                                                    <input type="email" class="form-control" id="email" name="email" placeholder="przykład@przykład.com" value="<?php echo htmlspecialchars($_POST['email']); ?>">
                                                    <?php echo "<p class='text-danger'>$errEmail</p>";?>
                                                </div>
                                            </div>
                                            <div class="form-group">
                                                <label for="message" class="col-xs-3 control-label">Wiadomość</label>
                                                <div class="col-xs-9">
                                                    <textarea class="form-control" rows="15" name="message" placeholder="Twoja wiadomość"><?php echo htmlspecialchars($_POST['message']);?></textarea>
                                                    <?php echo "<p class='text-danger'>$errMessage</p>";?>
                                                </div>
                                            </div>
                                            <div class="form-group">
                                                <label for="human" class="col-xs-3 control-label">2 + 3 = ?</label>
                                                <div class="col-xs-9">
                                                    <input type="text" class="form-control" id="human" name="human" placeholder="Twoja odpowiedź">
                                                    <?php echo "<p class='text-danger'>$errHuman</p>";?>
                                                </div>
                                            </div>
                                            <div class="form-group">
                                                <div class="col-xs-9 col-xs-offset-3">
                                                    <input id="submit" name="submit" type="submit" value="Wyślij" class="btn btn-primary">
                                                </div>
                                            </div>

                                        </form>

                                    </div>
                                </div>
                            </div>
                        </div>
                    </section>

 

$("form").on('submit', function(){
   $('#result').show();
})
  

 

1 odpowiedź

0 głosów
odpowiedź 11 sierpnia 2017 przez Jedras Maniak (54,860 p.)
1. Zamiast funkcji mail polecam zainteresować się PHPMailerem.

2. http://api.jquery.com/jquery.ajax/
komentarz 11 sierpnia 2017 przez pysilla Użytkownik (560 p.)

Chciałam to zrobić tym sposobem jako też, że nie używałam ajax'a. Ale dzięki za info.

 

Mały update. Okno modalne już nie znika od razu. Pozostaje kwestia dlaczego rezultat php nie pokazuje się w oknie modalnym.

Zmiany:

      $('#submit').on('click',function(clickEvent) {
        clickEvent.preventDefault();
        $("#result").modal("show");
    });

 

komentarz 12 sierpnia 2017 przez Jedras Maniak (54,860 p.)
Nie kontaktujesz się z serwerem, więc jak te dane z php mają być odebrane? Użyj Ajaxa i nie będzie problemu.

Podobne pytania

0 głosów
1 odpowiedź 562 wizyt
0 głosów
0 odpowiedzi 198 wizyt
pytanie zadane 6 lutego 2019 w HTML i CSS przez cyrus33 Użytkownik (680 p.)
0 głosów
0 odpowiedzi 488 wizyt
pytanie zadane 29 lipca 2020 w HTML i CSS przez daniel.sokanski Nowicjusz (160 p.)

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,262 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...