您的位置:首页 > 编程语言 > PHP开发

学习笔记之php页面ajax登录异步刷新

2014-09-13 16:13 519 查看
在做登陆等验证过程中,一直想实现一种用户无感知的效果,看了大神们的解决方法后终于实现了。主要用到了一些ajax知识,还有iframe。

首先,用一段js将登录框用户输入的的值传递到另一个页面(就是真正处理验证的页面)

js代码如下:

<!--ajax判断注册用户是否存在-->

<script type="text/javascript">

$(document).ready(function(){

$(".displayName input:first").blur(function(){

$.ajax({

type:"post",

url:"registerNAME.php",

data:"username=" + $(".displayName input:first").val(),

success:function(msg){

$("#userinfo").html(msg);

}

});

});

});

</script>

说明:1、“.displayName input:first” 是指类选择器为displayName中的第一个input

2、“registerNAME.php” 是用来处理验证的页面

3、“username” 是传递过去的变量名

4、 #userinfo" 是显示提示信息的选择器的ID,用来显示处理验证页面输出的提示信息。

注册处理页面registerNAME.php代码如下:(本页代码只是对用户名进行了验证)

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<?php

@$username = htmlspecialchars( trim($_POST['username']) );

@$username=mb_convert_encoding(@$username,"gbk","utf-8");

if (!empty(@$username))

{

$coon=odbc_connect("Manager","sa","xxxxx");

@$sql="SELECT TOP 1 Name FROM [2_VIPMember] WHERE Name = '".@$username."' ";

//echo $sql;

@$result =@odbc_exec($coon,@$sql);

//var_dump($result);

while(@odbc_fetch_row(@$result))

{

@$row=odbc_result(@$result,"Name");

}

if (empty(@$row[0]))

{

echo "<font color=green style='font-size:16px;'><b>*恭喜,可以注册!</b></font>";

}

else

{

echo "<font color=red style='font-size:16px;'><b>*用户名已被注册!</b></font>";

}

}

else

{

echo "<font color=#ff0000 style='font-size:16px;'><b>*请输入用户名</b></font>";

}

?>

另外,页面用多个iframe实现异步刷新效果的时候,当iframe被隐藏时,会出现提示信息不能显示在用户登陆界面的情况,解决方法是:

<?php echo"<script>parent.document.getElementById('userinfo').innerHTML='恭喜您!注册成功!';</script>";?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: