0

我有一个简单的表单提交,并在我的 process.php 文件中检查每个字段的有效性。如果失败,我将使用 $_SESSION 中的键/值对在登录页面上显示警告消息。

警告消息显示在页面加载时设置为 .hide 的 div 上(如果需要,还有一些引导样式)。

是否有 jQuery 函数或事件侦听器可用于检测 PHP 回显和 .toggle 警报框?

这是我的相关代码:

<div class="alert alert-error alert-block" id="error-box">
    <?php
        if (isset($_SESSION['first_name'])) { 
        echo $_SESSION['first_name'];
        }

        if (isset($_SESSION['last_name'])) { 
        echo $_SESSION['last_name'];
        }

        if (isset($_SESSION['email'])) { 
        echo $_SESSION['email'];
        }

        if (isset($_SESSION['passlen'])) { 
        echo $_SESSION['passlen'];
        }

        if (isset($_SESSION['passmatch'])) { 
        echo $_SESSION['passmatch'];
        }           
?>
</div>

和:

<script>
    $(document).ready(function(){
        $("#error-box").hide();     
});
</script>
4

3 回答 3

0

最简单的事情是检查是否#error-box包含任何文本:

$(document).ready(function(){
    if ($.trim($("#error-box").text()).length < 1) {
        $("#error-box").hide();
    }
}
于 2013-07-06T22:14:49.020 回答
0

php 在服务器上运行,而 javascript 在浏览器中运行,在执行 php 代码并转换为 html 之后。与其使用 javascript 隐藏/显示,不如仅在有任何错误时插入错误消息。

<?php
// validate your form

if ($errors) : ?>
<div class="alert alert-error alert-block" id="error-box">
    print your errors
</div>
<?php endif; ?>

然后你不需要 javascript 来隐藏/显示任何东西。

于 2013-07-06T22:17:38.013 回答
0

我认为你有一个错误的方法。正如您所说,您有一个简单的表单,我希望您不要使用 ajax。因此,通过调用您的 php 脚本,您将重新加载页面,如果需要,您可以回显该框。

<?php $fields = array('first_name', 'last_name', 'email', 'passlen', 'passmatch');?>

<?php if ($_SESSION['first_name'] || $_SESSION['last_name'] || $_SESSION['email'] || $_SESSION['passlen'] || $_SESSION['passmatch'] ): ?>

    <div class="alert alert-error alert-block" id="error-box">
        <?php
            foreach($fields as $_field){
               if (isset($_SESSION[$_field])) { 
                 echo $_SESSION[$_field];
               }
            }

    ?>
    </div>

<?php endif; ?>

好吧,它可以做得更好,但它显示了我想要告诉的内容!

于 2013-07-06T22:27:22.820 回答