Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

omom

Tekst w nowej karcie

Promowane odpowiedzi

Witam, mam taki skrypt pod kontakt:

 

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" >
<?php


$name = $_POST['name'];

$name1 = $_POST['name1'];

$email = $_POST['email'];

$message = $_POST['message'];

$odkogo = $_POST['email'];

$dokogo = "kontakt@ubraci.eu";

$tytul = "Kontakt uBraci.eu";


$wiadomosc = "";
$wiadomosc .= "Nick: " . $name . "\n";
$wiadomosc .= "Wiek: " . $name1 . "\n";
$wiadomosc .= "E-Mail:  " . $email . "\n";
$wiadomosc .= "Wiadomosc: " . $message . "\n";

$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

if ($sukces){
	echo '<span style="color: green">Wiadomość została wysłana.</span>';
}
else{
	echo '<span style="color: red">Wiadomość nie została wysłana.</span>';
}
?>

Chciałbym, aby wiadomość o poprawnie wysłanym mailu wyskakiwała od razu na stronie, a nie w nowej karcie.

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Użyj AJAXa. Swoją droga, po co ten nadmiar zamiennych, skoro i tak odbieranych danych nawet nie filtrujesz?

Edytowane przez Salvation

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
10 minut temu, Salvation napisał:

Użyj AJAXa. Swoją droga, po co ten nadmiar zamiennych, skoro i tak odbieranych danych nawet nie filtrujesz?

 

Pomożesz dodać tego ajaxa?

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
<label><font color="white">Nick</font></label>
<input name="name" type=name placeholder="Podaj Nick..." required>
<br><br>
<label><font color="white">Wiek</font></label>
<input name="name1" type=name1 placeholder="Podaj Wiek..." required>
<br><br>        
<label><font color="white">E-Mail</font></label>
<input name="email" type="email" placeholder="Podaj E-Mail..." required>
<br><br>        
<label><font color="white">Wiadomość</font></label>
<textarea name="message" rows="3" placeholder="Podaj Treść Wiadomości..."></textarea>
<br>
</center>        
<input id="submit" name="submit" type="submit" value="Wyślij">

 

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Końcówka pliku PHP:

if ($sukces){
	echo '<span style="color: green">Wiadomość została wysłana.</span>';
	return TRUE;
}
else{
	echo '<span style="color: red">Wiadomość nie została wysłana.</span>';
	return FALSE;
}

AJAX (wstaw w <head> w znacznik <script>):

$(document).ready(function(){
	$('#submit').click(function(){
		$.ajax({
			type: "POST",
			url: "plik.php",
			data: {
				name: $('input[name="name"]').val(),
				name1: $('input[name="name1"]').val(),
				email: $('input[name="email"]').val(),
				message: $('textarea[name="message"]').val(),
			},
			success: function(data){
				//udało się wysłać maila
				$('<div>').css({
					'background': "rgba(0,0,0,.2)",
					'height': "100%",
					'text-align': "center",
					'width': "100%",
					'z-index': "999"
				}).html(data).promise().done(function(){
					setTimeout(function(){
						$(this).hide(function(){
							$(this).remove();
						});
					}, 10000);
				});
			},
			error: function(data){
				//nie udało się wysłać maila
				$('<div>').css({
					'background': "rgba(0,0,0,.2)",
					'height': "100%",
					'text-align': "center",
					'width': "100%",
					'z-index': "999"
				}).html(data).promise().done(function(){
					setTimeout(function(){
						$(this).hide(function(){
							$(this).remove();
						});
					}, 10000);
				});
			}
		});
	});
});

PS. zmień `url` na adres, który masz w <form action=" ... "> i usuń ` action=" ... " `

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A wrzuć jeszcze to

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

do <head>

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Teraz ładnie wysyła, ale wiadomość o poprawnie wysłanej nie ma.

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Końcówka PHP:

if ($sukces) return TRUE;
else return FALSE;

I podmień AJAXa:

$(document).ready(function(){
	$('#submit').click(function(){
		$.ajax({
			type: "POST",
			url: "plik.php",
			data: {
				name: $('input[name="name"]').val(),
				name1: $('input[name="name1"]').val(),
				email: $('input[name="email"]').val(),
				message: $('textarea[name="message"]').val()
			},
			success: function(){
				//udało się wysłać maila
				$('<div>').css({
					'background': "rgba(0,0,0,.2)",
					'height': "100%",
					'text-align': "center",
					'width': "100%",
					'z-index': "999"
				}).html('<span style="color: green">Wiadomość została wysłana.</span>')
				.promise().done(function(){
					setTimeout(function(){
						$(this).hide(function(){
							$(this).remove();
						});
					}, 5000); //5 sekund
				});
			},
			error: function(){
				//nie udało się wysłać maila
				$('<div>').css({
					'background': "rgba(0,0,0,.2)",
					'height': "100%",
					'text-align': "center",
					'width': "100%",
					'z-index': "999"
				}).html('<span style="color: red">Wiadomość nie została wysłana.</span>')
				.promise().done(function(){
					setTimeout(function(){
						$(this).hide(function(){
							$(this).remove();
						});
					}, 5000); //5 sekund
				});
			}
		});
	});
});

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Takie coś?

 

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" >
<?php


$name = $_POST['name'];

$name1 = $_POST['name1'];

$email = $_POST['email'];

$message = $_POST['message'];

$odkogo = $_POST['email'];

$dokogo = "kontakt@ubraci.eu";

$tytul = "Kontakt uBraci.eu";


$wiadomosc = "";
$wiadomosc .= "Nick: " . $name . "\n";
$wiadomosc .= "Wiek: " . $name1 . "\n";
$wiadomosc .= "E-Mail:  " . $email . "\n";
$wiadomosc .= "Wiadomosc: " . $message . "\n";

$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

if ($sukces) return TRUE;
else return FALSE;

?>

 

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nadal to samo :/

Wysyła, ale wiadomości nie ma.

Edytowane przez Sin
  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To może tak. Przywróć końcówkę PHP do tej wersji:

if ($sukces){
	echo '<span style="color: green">Wiadomość została wysłana.</span>';
	return TRUE;
}
else{
	echo '<span style="color: red">Wiadomość nie została wysłana.</span>';
	return FALSE;
}

A AJAXa podmień na to:

$(document).ready(function(){
	$('#submit').click(function(){
		$.ajax({
			type: "POST",
			url: "plik.php",
			data: {
				name: $('input[name="name"]').val(),
				name1: $('input[name="name1"]').val(),
				email: $('input[name="email"]').val(),
				message: $('textarea[name="message"]').val()
			}
		}).done(function(data){
			$('<div>').css({
				'background': "rgba(0,0,0,.2)",
				'height': "100%",
				'text-align': "center",
				'width': "100%",
				'z-index': "999"
			}).html(data).promise().done(function(){
				setTimeout(function(){
					$(this).hide(function(){
						$(this).remove();
					});
				}, 5000); //5 sekund
			});
		}).fail(function(data){
			$('<div>').css({
				'background': "rgba(0,0,0,.2)",
				'height': "100%",
				'text-align': "center",
				'width': "100%",
				'z-index': "999"
			}).html(data).promise().done(function(){
				setTimeout(function(){
					$(this).hide(function(){
						$(this).remove();
					});
				}, 5000); //5 sekund
			});
		});
	});
});

 

Edytowane przez Salvation
  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No to może tak zadziała... Końcówka PHP:

if ($sukces){
	echo '<span style="color: green">Wiadomość została wysłana.</span>';
	http_response_code(200); //wszystko ok
}
else{
	echo '<span style="color: red">Wiadomość nie została wysłana.</span>';
	http_response_code(500); //nie wysłało wiadomości
}

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Utwórz konto

Utwórz konto. To darmowe i bardzo proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się teraz


×