Po kliknięciu przycisku Wyślij dane zostaną wysłane do pliku a.php ale użytkownik zostanie przeniesiony do tego pliku
a mi chodzi o to żeby po kliknięciu przycisku dane zostały wysłane ale użytkownika nie przenosiło do tego pliku. Dokładnie to chcę żeby po wysłaniu danych przenieść użytkownika do innego pliku (nie a.php). Czy da się tak zrobić?
Opcji jest kilka. Najprostsza to obsłużyć formularz (czyli mieć w/w kod PHP) w tym samym pliku co formularz i wtedy “action” zostawić puste: “<form action=”" method=“POST>”. Wtedy przed powyższym “echo $_POST[’…” sprawdzasz “if (isset($_POST)) …”.
Przenosisz go do pliku a.php, na końcu którego jest coś takiego (disclaimer: kod wzięty z dokumentacji):
<?php
header("Location: http://www.example.com/"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
po wysłaniu wiadomości trafiam na stronę na której jest informacja o wysłanej wiadomości i możliwości powrotu do poprzedniej strony lub do strony głównej.
Możesz też pokusić się o użycie ajaxa i za jego pośrednictwem przesłać dane do pliku PHP. Dzięki takiemu rozwiązaniu uzyskasz to, czego oczekujesz, czyli przesłanie danych do skrypru php bez przeładowania strony. Przy zastosowaniu ajaxa możesz jeszcze dzięki jQuery wyświetlić użytkownikowi komunikat informujący o przesłaniu formluarza
Nie powinien ale brakuje mi ostatnio kodowania więc taki mały przykład:
!DOCTYPE html
html
head
titleFirst form/title
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/head
body
form method="post" action="afile.php"
input type="text" name="first_name" value="" /
input type="submit" /
/form
/body
/html
afile.php
!DOCTYPE html
html
head
titleSecond form/title
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/head
body
form method="post" action="bfile.php"
input type="text" name="second_name" value="" /
input type="hidden" name="first_name" value="?php echo $_POST['first_name']?" /
input type="submit" /
/form
/body
/html
bfile.php
!DOCTYPE html
html
head
titleResult from two forms/title
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/head
body
pFirst Name: ?php echo $_POST["first_name"] ?/p
pSecond Name: ?php echo $_POST["second_name"]; ?/p
/body
/html