如何处理PHP和HTML中的警报?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (42)

有人能向我解释一下为什么警报在我的代码中不起作用吗?我试图向用户显示警报&然后将他重定向到下一页。下面是代码:

<?php
$name=$_POST['name'];
$password=$_POST['password'];

if(isset($_POST['submit'])){

    if($name == 'a' && $password == 'a'){
        echo "<script>swal('Good job!', 'You clicked the button!', 'success');</script>";
    }else{
        echo 'Login Failed';
    }
}

?>
<html>
<head>
    <title>Organizer Login | Get My Fest</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
    <body>
        <div class="loginbox">
            <img src="avatar.png" class="avatar">
            <h1>Login Here</h1>
            <form method="post" action="">
                <p>Username</p>
                <input type="text" name="name" placeholder="Enter Username" required>
                <p>Password</p>
                <input type="password" name="password" placeholder="Enter Password" required>
                <input type="submit" value="Login" name="submit">
            </form>
        </div>
    </body>
</head>

</html>
提问于
用户回答回答于

你有几个问题:

  1. head标记未正确关闭。它不应该包含body但应该在它之前。
  2. 执行echo之前输出内容的指令。html会显示出来,你至少应该在变量中分配字符串,然后在包含js文件之后输出它。
  3. 应该将“登录失败”的消息输出到body,这是普通文本。

就像这样:

<?php
$name=$_POST['name'];
$password=$_POST['password'];
$swal_result = '';
$text_result = '';

if(isset($_POST['submit'])){

    if($name == 'a' && $password == 'a'){
        $swal_result = "<script>swal('Good job!', 'You clicked the button!', 'success');</script>";
    }else{
        $text_result = 'Login Failed';
    }
}

?>
<html>
<head>
    <title>Organizer Login | Get My Fest</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
    <?php echo $swal_result; ?>
</head>
    <body>
        <?php if ($text_result != '') { ?>
            <p><?php echo $text_result; ?></p>
        <?php } ?>
        <div class="loginbox">
            <img src="avatar.png" class="avatar">
            <h1>Login Here</h1>
            <form method="post" action="">
                <p>Username</p>
                <input type="text" name="name" placeholder="Enter Username" required>
                <p>Password</p>
                <input type="password" name="password" placeholder="Enter Password" required>
                <input type="submit" value="Login" name="submit">
            </form>
        </div>
    </body>
</html>

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励