Ajax异步传值用法示例
1.前端页面包含脚本(ajax)和基本的HTML标记 以方便大家对应查找和理解
<script language="javascript">
function addclick() { //点击触发addclick事件
var txtuserName = $("#txtuserName").val();//用jquery获取id为txtuserName的页面标记的value,存放在txtuserName变量里
$.ajax({
type: "POST", //ajax的方式为post(get方式对传送数据长度有限制)
url: "/AjaxRequest/AddUser.ashx", //一般处理程序页面AddUser.ashx(在2中会写出该页面内容)
dataType: "json", //数据传回的格式为json
data: { adduserName: txtuserName}, //要传送的数据键值对adduserName为键(方便2中的文件用此名称接受数据)txtuserName为值(要传递的变量,例如用户名)
success: function (data) { //成功回传值后触发的方法
if (data != null && data.IS != "") { //如果回传的json不为null或json中的IS键对应的值不为空,则触发一下代码,否则弹出“请重新尝试”
if (data.IS == "-1") { //如果json中的IS键对应的值为-1,则说明用户名已在数据库中存在
alert("添加失败!该名已存在!");
}
else if (data.IS == "0") { //json中的IS键对应的值为0,则说明用户名没有添加成功
alert("添加失败!");
}
else if (data.IS == "-2") { //json中的IS键对应的值为-2,则说明数据库返回的主键列不能转换成INT32类型
alert("数据库连接失败或访问失败!");
}
else {
alert("添加成功!");
$("#txtuserName").val("");
}
}
else {
alert("请重新尝试!");
}
}
})
}
</script>
<body>
<h2>
<input id="txtuserName" name="" size="26" >
</h2>
<input type="button" value="提交" onclick="addclick()"/>
</body>
2.一般处理程序,即接受1中Ajax传来的值并传入BLL层
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
int model = new BLL.User().AddUser(context.Request["adduserName"]); //通过context.Request获取1中Ajax里的data:中键值对的键名来得到用户名txtuserName并传入BLL层
context.Response.Write("{\"IS\":\""+model+"\"}"); //拼接json对象(键值对)model为运行存储过程后返回的数字
}