В настоящее время я использую php на моей странице html, и на той же странице выполняется действие, которое выполняется при отправке формы. В настоящее время вся форма перезагружается, пока я хочу, чтобы действие php выполнялось в фоновом режиме без перезагрузки. Как мне это сделать. Я также хочу очистить текстовое поле после нажатия кнопки отправки. Ниже приведен код, который я использую в настоящее время.
<html> <head> </head> <body> <form action="index.php" method="post" role="form"> <input type="email" placeholder="Enter email" name="email_address"> <button class="btn btn-primary custom-button red-btn">Sign Up</button> </form> <?php if(isset($_POST['email_address']) !(trim($_POST['email_address']) == '')) // do some action } ?> </body> </html>
Примечание. Следующий код работал для меня
<script type="text/javascript"> $('#contactForm').submit(function () { $.post("mailer.php",$("#contactForm").serialize(), function(data){ }); return false; }); </script>
Для этого вам нужно использовать AJAX, без перезагрузки. Или, если вы хотите сделать это, не нарушая страницу, вам нужно установить target
.
$("form").submit(function(){ $.post($(this).attr("action"), $(this).serialize()); return false; });
target
<form action="index.php" method="post" role="form" target="_blank">
Использование ajax
HTML
<html> <head> </head> <body> <form id="myform"><!--changge--> <input type="email" placeholder="Enter email" name="email_address"> <button class="btn btn-primary custom-button red-btn" id="signup">Sign Up</button> </form> <script> $(document).ready(function() { $('#signup').click(function() { $.ajax({ url:'index.php' method:'post', data : $('#myform').serialize(), success:function() { } )}; ); }); </script>
Вы можете попробовать это
<html> <head> </head> <body> <form id="myform" action="index.php"><!--changge--> <input type="email" placeholder="Enter email" name="email_address"> <button class="btn btn-primary custom-button red-btn" id="signup"> Sign Up</button> </form> <script> $(document).ready(function(){ $('#signup').click(function(){ $.post($(this).attr("action"), $("#myform").serialize(),function(response){ alert(response) // you can get the success response return by php after submission success }); )}; });