首页 > 解决方案 > 我想在不刷新的情况下更改订阅 div 的内容

问题描述

我想更改订阅 div 的内容,例如当用户已经订阅时,我想将 div 颜色更改为红色并告诉消息“您已经订阅”。我知道可以使用 ajax 来完成,但我不知道对阿贾克斯一无所知。

这是PHP插入的div

<?php
echo ';
<div id="sub">
<form method="post" action="subscription.inc.php">
    <input type="text" name="email" placeholder="Enter your Email">
    <button type="submit" name="submit" value="submit" `enter code here`onclick="myAjax()">Subscirbe</button>
</form>
</div>
';
?> 

这是应该在点击时运行的 PHP 代码

<?php 
include 'conn.php';
include 'sub.php';
  if (isset($_POST['submit'])) {
    $email=mysqli_real_escape_string($conn,$_POST['email']);
      $sql="INSERT INTO `subscribe` (`id`, `email`) VALUES (NULL, '$email');";

      $emailcheck="SELECT * FROM `subscribe` WHERE email='ayush.antino@gmail.com'";
      $doubleemail=mysqli_query($conn,$emailcheck);
      $num_rows=mysqli_num_rows($doubleemail);
      if ($num_rows>0) {
        header("Location:sub.php?subscribe=alreadyexist");
        exit();
      }elseif ($num_rows==0) {
        if (!filter_var($email,FILTER_VALIDATE_EMAIL)) {
         echo "please enter valid email";
      } else {
         mysqli_query($conn,$sql);
         header("Location:sub.php?subscribe=success");
         exit();
      }

  }
}
?>

我应该如何在不刷新页面的情况下刷新“您已订阅”消息

标签: javascriptphpjqueryhtmlajax

解决方案


试试这样。。

 <div id="sub">
    <form method="post" action="subscription.inc.php">
        <input type="text" name="email" placeholder="Enter your Email">
        <button type="submit" name="submit" value="submit" `enter code here`onclick="myAjax()">Subscirbe</button>
    </form>
    </div>
    <script>
checkSubscribe();
    function checkSubscribe() {

            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
            $('#sub').css('background-color:red;')
                }
            };
            xmlhttp.open("GET", "checkuser.php", true);
            xmlhttp.send();

    }
    </script>

推荐阅读