В настоящее время я использую 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">
return false;
осторожно - обычно предпочитая e.preventDefault()
потому что возвращение false также остановит распространение события, может повлиять на другие функции, если вы полагаетесь на всплывающее событие.
Использование 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
});
)};
});