自定义php错误消息fadein

时间:2012-09-19 18:51:04

标签: php javascript html

我已将以下代码编写为我网站的用户注册过程的一部分。显然,一旦用户填写了他们的电子邮件并点击提交,表单数据将通过以下方式发送:

<?php

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

$email_from = $_POST['email'];

function died($error) {
    echo $error;
    die();
}

if(!isset($_POST['email'])) {
    died($error);
}

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
    if(!preg_match($email_exp,$email_from)) {

  $error_message .= ' <script type="text/javascript">
  alert("The email address you entered does not appear to be valid");
  window.location = "http://www.domain.com/";
  </script> ' ;
    }

if(strlen($error_message) > 0) {
    died($error_message);
}

etc, etc, etc....

我真的很感激一些帮助,就是这个脚本:

$error_message .= ' <script type="text/javascript">
  alert("The email address you entered does not appear to be valid");
  window.location = "http://www.domain.com/";
  </script> ' ;
    }

如何在html页面上创建一个只在淡入淡出(和点击外)的错误消息,而不是仅仅在重定向到html页面之前成为空白白页php页面的js警告?

谢谢!

3 个答案:

答案 0 :(得分:2)

如何使用jQuery的fadeIn函数? http://api.jquery.com/fadeIn/ 如果你不知道如何使用jQuery,你应该简单地将你的html页面链接到jQuery的.js脚本并根据需要使用这些函数。

<强>更新

回答你的评论。根据{{​​1}}中的讨论,您可以采取以下措施:

http://stackoverflow.com/questions/3708850/is-there-an-onload-event-for-input-elements

然后,您可以在<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="jquery-1.5.1.min.js"></script> <script type="text/javascript"> function test() { alert('test'); } </script> </head> <body > <?php if($condition) { print '<input type="hidden" /> <script> test(); </script>'; } ?> </body> 中执行任何操作,例如,调用fadeIn。此外,您可以在PHP if语句中指定所需的条件。

答案 1 :(得分:2)

<span class="fadeInMessage" style="display:none;">"The email address you entered does not appear to be valid"</span>

这将开始隐形。然后你会写下面的代码:

$(function(){
    $('.fadeInMessage').fadeIn();
});

答案 2 :(得分:0)

我同意其他两个答案;你应该使用jQuery的fadeIn函数。但是,如果您不想或不能使用jQuery,这应该让您开始使用纯Javascript实现:

HTML:

<div id="message">Hello world!</div>​

使用Javascript:

var msg = document.getElementById( 'message' );
msg.style.opacity = 0;

function fadeIn() {
    if( msg.style.opacity < 1 ) {
        msg.style.opacity = parseFloat(msg.style.opacity) + 0.01;        
        setTimeout( fadeIn, 25 );
    }
}

function fadeOut() {
    if( msg.style.opacity > 0 ) {
        msg.style.opacity = parseFloat(msg.style.opacity) - 0.01;
        setTimeout( fadeOut, 25 );
    }
}        

fadeIn();

msg.onclick = function() { fadeOut(); }

这是一个jsFiddle演示:http://jsfiddle.net/GgYS8/