Ajax模拟留言
2012-03-04 19:15
85 查看
create table UserInfo ( username varchar(20), userpwd varchar(20) ) insert into UserInfo values('administrator','123456') create table ChatInfo ( id int identity(1,1) primary key, [name] varchar(20), context varchar(20), chattime datetime )
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
<system.web>
<!--防止乱码-->
<globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/>
public class Userinfo { private string name; public string Name { get { return name; } set { name = value; } } private string pwd; public string Pwd { get { return pwd; } set { pwd = value; } } }
public class ChatInfo { private string id; public string Id { get { return id; } set { id = value; } } private string context; public string Context { get { return context; } set { context = value; } } private string name; public string Name { get { return name; } set { name = value; } } private string time; public string Time { get { return time; } set { time = value; } } public override string ToString() { return string.Format("{0} 说 {1} 时间{2}", name, context, time); } }
public class DBHelper { private SqlConnection sqlconn = null; private SqlCommand sqlcmd = null; private SqlDataReader sqlread = null; private static DBHelper db = null; private DBHelper() { sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlDB"].ToString()); } /// <summary> /// 单例 /// </summary> /// <returns></returns> public static DBHelper createInstance() { if (db == null) { db = new DBHelper(); } return db; } public bool checkLogin(Userinfo user) { string sql = string.Format("select count(*) from userinfo where username='{0}' and userpwd='{1}'",user.Name,user.Pwd); sqlcmd = new SqlCommand(sql,sqlconn); try { sqlconn.Open(); return (int)sqlcmd.ExecuteScalar() == 1; } catch { return false; } finally { sqlconn.Close(); } } //发言 public bool sendChat(ChatInfo chat) { string sql = string.Format("insert into ChatInfo values('{0}','{1}','{2}')",chat.Context,chat.Name,DateTime.Now.ToString()); sqlcmd=new SqlCommand(sql,sqlconn); try { sqlconn.Open(); return sqlcmd.ExecuteNonQuery() > 0; } catch { return false; } finally { sqlconn.Close(); } } //显示 public List<ChatInfo> GetAllInfo() { string sql = "select *from Chatinfo order by chattime"; sqlcmd = new SqlCommand(sql,sqlconn); try { sqlconn.Open(); sqlcmd = new SqlCommand(sql, sqlconn); sqlread = sqlcmd.ExecuteReader(); List<ChatInfo> list = new List<ChatInfo>(); while (sqlread.Read()) { ChatInfo chat = new ChatInfo(); chat.Id = sqlread[0].ToString(); chat.Context = sqlread[1].ToString(); chat.Name = sqlread[2].ToString(); chat.Time = sqlread[3].ToString(); list.Add(chat); } return list; } catch (Exception) { throw; } finally { sqlconn.Close(); } } }
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title></title> <script type="text/javascript"> var xmlHttp; function createDemo() { if (window.ActiveXObject) { var ieArr = ["Msxml2.XMLHTTP.8.0", "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; for (var i = 0; i < ieArr.length; i++) { try { xmlHttp = new ActiveXObject(ieArr[i]); } catch (e) { } //抛异常,直到找到合适的版本 } } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } //登录 function doDemo() { var name = document.getElementById("txtName").value; var pwd = document.getElementById("txtPwd").value; if (name.length < 3) { alert("用户名不能少于3位!"); } else if (pwd.length < 6) { alert("用户密码不能少于6位!"); } else { createDemo(); xmlHttp.onreadystatechange = disDemo; //触发事件 var url = "WebChat.aspx?name=" + name + "&pwd=" + pwd; xmlHttp.open("GET", url, true); xmlHttp.send(); } document.getElementById("divDis").innerHTML = ""; } //发言 function sendDemo() { var chat = document.getElementById("txtChat").value; var name = document.getElementById("userName").value; if (chat.length == 0) { alert("不能空发信息"); } else { createDemo(); //异步请求伴随着5种状态的产生,只有一个事件onreadystatechange发生 xmlHttp.onreadystatechange = disDemo; var url = "InsertDemo.aspx?name=" + name + "&chat=" + chat; //加载 xmlHttp.open("GET", url, true); //发送 xmlHttp.send(); } } //显示 function disDemo() { if (xmlHttp.readyState == 4)// 0 - (未初始化)还没有调用send()方法 //1 - (载入)已调用send()方法,正在发送请求 // 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 // 3 - (交互)正在解析响应内容 // 4 - (完成)响应内容解析完成,可以在客户端调用了 { if (xmlHttp.status == 200)//编号200表示成功 { //responsetext 以字符串形式返回服务器的响应,responsexml 以XML形式返回服务器的响应 document.getElementById("divLogin").innerHTML = xmlHttp.responsetext; } } } </script> </head> <body> <div id="divDis"> <table border="1" align="center"> <tr> <td colspan="2" align="center"> 用户登录 </td> </tr> <tr> <td> 用户名称 </td> <td> <input id="txtName" type="text" /> </td> </tr> <tr> <td> 用户密码 </td> <td> <input id="txtPwd" type="password" /> </td> </tr> <tr> <td colspan="2" align="center"> <input id="btnLogin" type="button" value="登录" onclick="doDemo();" /> </td> </tr> </table> </div> <div id="divLogin"></div> </body> </html>
public partial class InsertDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string name = Request["name"]; string chat = Request["chat"]; ChatInfo chatInfo = new ChatInfo(); chatInfo.Name = name; chatInfo.Context = chat; if (DBHelper.createInstance().sendChat(chatInfo)) { //Response.Write("发言成功!"); Response.Write("欢迎 " + name + "<br/><br/><br/>"); Response.Write("<input id='userName' type='hidden' value=" + name + " />"); foreach (ChatInfo demo in DBHelper.createInstance().GetAllInfo()) { Response.Write(demo.ToString() + "<br/>"); } Response.Write("<input id='txtChat' type='text' /><input id='btnSend' type='button' value='发言' onclick='sendDemo();' />"); } else { Response.Write("发言失败!"); } } } }
public partial class WebChat : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string name = Request["name"]; string pwd = Request["pwd"]; Userinfo user = new Userinfo(); user.Name = name; user.Pwd = pwd; if (DBHelper.createInstance().checkLogin(user)) { Response.Write("欢迎 " + name + "<br/><br/><br/>"); Response.Write("<input id='userName' type='hidden' value=" + name + " />"); foreach (ChatInfo chat in DBHelper.createInstance().GetAllInfo()) { Response.Write(chat.ToString() + "<br/>"); } Response.Write("<input id='txtChat' type='text' /><input id='btnSend' type='button' value='发言' onclick='sendDemo();' />"); } else { Response.Write("用户名或密码错误!"); } } } }
相关文章推荐
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- Prototype源码浅析 String部分(二)
- Dom在ajax技术中的作用说明
- css样式之区分input是按钮还是文本框的方法第1/4页
- AJAX简单应用实例-弹出层
- 控制input的CSS但不影响CheckBox以及Radio的样式
- 强烈推荐 - Ajax 技术资源中心
- Ajax PHP简单入门教程代码
- ajax 的post方法实例(带循环)
- PHP STRING 陷阱原理说明
- Ajax Throws Sys.WebForms.PageRequestManagerErrorException with Response.Redirect的解决方法
- asp.net String.IsNullOrEmpty 方法
- 解决asp.net ajax sys未定义的解决方法
- js禁用和激活input表单的方法
- 让input不可点击的另一种方法
- php+AJAX传送中文会导致乱码的问题的解决方法
- javascript 面向对象编程 function是方法(函数)
- javascript 面向对象编程 function也是类
- IIS下PHP连接数据库提示mysql undefined function mysql_connect()
- javascript ajax类AJAXRequest2007-12-31 更新