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

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
Gość
Komentujesz jako gość. Jeśli posiadasz konto, zaloguj się.
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Maksymalnie dozwolone są tylko 75 emotikony.

×   Odnośnik został osadzony automatycznie.   Wyświetlaj jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie

×