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