用成功消息替换html表单


Replacing html form with success message

如果电子邮件成功插入数据库,我想显示成功消息而不重定向。

我的形式:

<div class="row">
                <div class="col-md-4 col-md-offset-4 col-sm6-6 col-sm-offset-3 ">
                    <form class="form-inline" role="form" method="post">
                      <div class="form-group">
                        <label class="sr-only" for="exampleInputEmail2">Email address</label>
                        <input name='email' id="email" type="email" class="form-control transparent" placeholder="Email">
                      </div>
                      <button type="submit" name='send' value='send' class="btn btn-danger btn-fill">Register</button>
                    </form>
                </div>
            </div>

我的php插入代码是这样的:

 if(isset($_POST["send"])){
    $email = $_POST['email'];
    if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    $query = 'INSERT INTO subscriber(email) SELECT "'.$email.'" 
    FROM dual
        WHERE NOT EXISTS (
            SELECT * FROM subscriber
            WHERE email="'.$email.'"
        )';
    $result =  mysqli_query($dbc, $query) or die(mysqli_error($dbc));
    }
}

我试过这样做,但它不工作

<?php
if (!$insert === FALSE) { 
$response = __('Success');?>
<script>
    jQuery(document).ready(function($) {
        var response = '<?php echo $response; ?>';
        $(".form-inline").html(response);
        $('.form-inline').addClass('response').removeClass('form-inline'); 
    });
</script>
<?php
$msg='';
if(isset($_POST["send"])){
$email = $_POST['email'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$query = 'INSERT INTO subscriber(email) SELECT "'.$email.'" 
FROM dual
    WHERE NOT EXISTS (
        SELECT * FROM subscriber
        WHERE email="'.$email.'"
    )';
$result =  mysqli_query($dbc, $query) or die(mysqli_error($dbc));
$msg="Email sent successfully";
}
}
?>
 <div class="row">
            <div class="col-md-4 col-md-offset-4 col-sm6-6 col-sm-offset-3 ">
 <div class="label label-success"><?php if($msg!=''){echo $msg;} ?></div>
                <form class="form-inline" role="form" method="post">
                  <div class="form-group">
                    <label class="sr-only"for="exampleInputEmail2">Email address</label>
                    <input name='email' id="email" type="email" class="form-control transparent" placeholder="Email">
                  </div>
                  <button type="submit" name='send' value='send' class="btn btn-danger btn-fill">Register</button>
                </form>
            </div>
        </div>

使用简单的重定向到成功页面。问题到底在哪里?你可以这样写

if($inserted_into_db == true) {
   header("Location: success.php");
} else { 
   header("Location: your-form.php");
}

然后处理错误

您可以检查您的查询是否成功运行,然后您可以只是回显消息以显示成功消息。

$result =  mysqli_query($dbc, $query) or die(mysqli_error($dbc));
 if($result)
  {
   echo "Email is succesfully inserted";
  }