Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP事件的jQuery侦听器_Php_Jquery_Forms_Login_Event Listener - Fatal编程技术网

PHP事件的jQuery侦听器

PHP事件的jQuery侦听器,php,jquery,forms,login,event-listener,Php,Jquery,Forms,Login,Event Listener,我有一个简单的表单提交,在process.php文件中检查每个字段的有效性。如果失败,我将在$\u会话中使用键/值对在登录页面上显示一条警报消息 警报消息显示在一个div上(如果有必要的话,可以使用一些引导样式),该div设置为.hide,以在页面加载时隐藏 是否有jQuery函数或事件侦听器可用于检测PHP回音并切换警报框 以下是我的相关代码: <div class="alert alert-error alert-block" id="error-box"> <?p

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

警报消息显示在一个div上(如果有必要的话,可以使用一些引导样式),该div设置为.hide,以在页面加载时隐藏

是否有jQuery函数或事件侦听器可用于检测PHP回音并切换警报框

以下是我的相关代码:

<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>

以及:


$(文档).ready(函数(){
$(“#错误框”).hide();
});

最简单的方法是检查
#错误框
是否包含任何文本:

$(document).ready(function(){
    if ($.trim($("#error-box").text()).length < 1) {
        $("#error-box").hide();
    }
}
$(文档).ready(函数(){
if($.trim($(“#错误框”).text()).length<1){
$(“#错误框”).hide();
}
}

执行php代码并将其转换为html后,php在服务器上运行,javascript在浏览器中运行。只有在出现错误时才插入错误消息,而不是使用javascript隐藏/显示

<?php
// validate your form

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

打印您的错误

那么你就不需要javascript来隐藏/显示任何内容。

我认为你的方法是错误的。正如你所说,你有一个简单的表单,我希望你不使用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; ?>


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

jQuery和PHP不同时处理,一个是服务器端,另一个是客户端。你可以检查错误框是否为空,如果是这样,隐藏它(尽管我不确定你想要什么)。谢谢你。我还学习了一些新的jQuery命令。
<?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; ?>