利用 jquery ajax做一个用户登录界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用 jquery ajax做一个用户登录界面相关的知识,希望对你有一定的参考价值。
b页面已经连好了数据库,在a页面通过ajax将本页面的参数传到b页面,b页面将会返回一个值,从而判断是否注册
a页面关键JS代码:function che(username,pwd)
$.ajax(
url:"b.aspx",
type:"POST",
data:user:username,pwd:pwd,
dataType:"XML",
success: function (data,status)
var count=$(data).find("num").text();
if(count==0) //没有注册
$("#lab2").html("未注册,不能登录");
else //已经注册
$("#lab2").html("可以登录");
……
//else
//success
); //ajax
b页面中要返回xml数据,拼字符串就可以
string user = Request["user"].ToString(); //获取用户名
string pwd = Request["pwd"].ToString(); //获取密码
count=根据用户名和密码查询出来的记录数
//sql语句:select count(*) from login where username=user and password=pwd
string str = "<?xml version='1.0' ?>";
str += "<num>" + count + "</num>";
Response.Write(str);
Response.End();追问
那我是怎么知道count等于什么的?谢了
追答int count=0;
string sql = "select count(*) from login where username=“+user+“ and password=”+pwd;
_Cmd.CommandText = sql;
try
_Conn.Open();
count = Convert.ToInt32( _Cmd.ExecuteScalar());
finally
_Conn.Close();
string str = "";
str += "" + count + "";
可是我的count是怎么传到a页面的呢?谢谢了
追答b页面不用做别的 只是拼字符串 构成XML文档 a页面中直接从 success 的回调函数的 data 参数中取就行啊
本例中就是 var count=$(data).find("num").text();
那到底怎么拼字符串啊!能详细点吗
追答b页面代码:Page_Load 中
string user = Request["user"].ToString(); //获取用户名
string pwd = Request["pwd"].ToString(); //获取密码
int count=new LoginDA().Select(user,pwd);
string str = "";
str += "" + count + "";
Response.Write(str);
Response.End();
新建数据库操作类LoginDA.cs
public class LoginDA
private SqlConnection _Conn;
private SqlCommand _Cmd;
private SqlDataReader _DR;
public LoginDA()
_Conn = new Connect().Conn; //数据库连接 这个你总该会吧
_Cmd = _Conn.CreateCommand();
public int Select(string name, string pwd)
int i = 0;
_Cmd.CommandText = "select count(*) from login where username=@name and password=@pwd";
_Cmd.Parameters.Clear();
_Cmd.Parameters.AddWithValue("@name", name);
_Cmd.Parameters.AddWithValue("@pwd", pwd);
try
_Conn.Open();
i = Convert.ToInt32(_Cmd.ExecuteScalar());
finally
_Conn.Close();
return i;
那么在a.php中的js
<script>
function reg()
$.ajax(
type: 'POST',
url: 'b.php',
data: 'username':name,'action':'ajax',
success: function(data)
if(data=='2')
alert('已经注册过了');
else if(data=='1')
alert('可以注册');
else
alert('系统出错');
);
</script>
b.php
<?php
...
$a=$_POST['action'];
switch($a)
case 'ajax':
$reg_name=$_POST['username'];
$sql='select * from 用户表 where username='.$reg_name;
...//执行查询,将结果赋值给$res
if(empty($res))
exit('1');//证明还没有注册过
else
exit('2');//已经有人注册过
break;
default:
exit('3');
break;
...
?>追问
我想在b页面中先判断txtName在数据库有没有记录,然后传给一个变量传给a页面,,,帮帮忙吧.....谢谢了
追答$sql='select * from 用户表 where username='.$reg_name;
...//执行查询,将结果赋值给$res//你就在这一句执行查询就行了啊,下面就是判断有没有记录,
//然后传值给前台就是了,前台用data就能获得返回的数据success: function(data)
希望能仔细点看代码
以上是关于利用 jquery ajax做一个用户登录界面的主要内容,如果未能解决你的问题,请参考以下文章
使用PHP中的ajax做登录页面验证用户名是否可用动态调用数据库