Как избежать перезагрузки страницы при отправке формы php

0

В настоящее время я использую 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>
  • 0
    Вы должны перенаправить пользователя на другую страницу, как спасибо ..
Теги:
forms

3 ответа

3
Лучший ответ

Для этого вам нужно использовать AJAX, без перезагрузки. Или, если вы хотите сделать это, не нарушая страницу, вам нужно установить target.

Использование AJAX

$("form").submit(function(){
  $.post($(this).attr("action"), $(this).serialize());
  return false;
});

Использование target

<form action="index.php" method="post" role="form" target="_blank">
  • 1
    Я бы использовал return false; осторожно - обычно предпочитая e.preventDefault() потому что возвращение false также остановит распространение события, может повлиять на другие функции, если вы полагаетесь на всплывающее событие.
  • 1
    $ ('# contactForm'). submit (function () {$ .post ("mailer.php", $ ("# contactForm"). serialize (), function (data) {}); вернуть false;}); работал на меня
1

Использование 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>
  • 0
    это дало мне синтаксическую ошибку, пока это работало $ .post ("mailer.php", $ ("# contactForm"). serialize (), function (data) {});
0

Вы можете попробовать это

<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
        });
    )};
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню