通过ajax

get方法:

  基本格式:$.get("后台一般处理程序文件路径",{传值,格式为  KEY:VULES},function(后台返回值){接到后台数据后处理});

 $.get("Ajax/ToBeAssigned.ashx?" + Math.random(), { Action: "Update", StudyNo: studyno, ExamNo: examno, DeptCode: DeptCode }, function(data) {
if (data != null) {
if (data == ) {
$("#tow").append("<tr style='border: 0px;background:#FFFFFF'><td colspan='7' style='border: 0px;'><label style='color: #FF0000;'>关联成功!</label></td></tr>");
} else {
$("#tow").append("<tr style='border: 0px;background:#FFFFFF'><td colspan='7' style='border: 0px;'><label style='color: #FF0000;'>关联失败!</label></td></tr>");
}
}
});

①后台获取前台出入的值,用  context.Request["KEY"];

②后台处理(包括对数据库的增删改查)

③后台输出给前台,用context.Response.Write(result);

post方法:

  基本格式:同get方法

①后台获取前台出入的值,用  context.Request.Form["KEY"];

②后台处理(包括对数据库的增删改查)

③后台输出给前台,用context.Response.Write(result);

 function ShowRegBox() {
layer.open({
type: 1,
title: "注册",
area: ["400px", "490px"],
content: $("#regbox")
});
} function Reg()
{
var username = $("#txtRegUserName").val();
var pwd = $.md5($("#txtRegPwd").val());
var qq = $("#txtRegQQ").val();
var email = $("#txtRegEmail").val();
var tel = $("#txtRegTel").val();
if (username == "" || pwd == "") {
layer.msg("用户名密码不能为空!", { title: "提示", icon: 5 });
}
else {
$.post("/demo.ashx", { "username": username, "pwd": pwd, "qq": qq, "email": email, "tel": tel, "cmd": "reg" }, function (data) {
if(data=="注册成功")
{
layer.msg(data, {
icon:6
});
}
else
{
layer.msg(data, {
icon: 5
});
}
});
}
}

后台处理:

 using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web; namespace PROJECT20160712
{
/// <summary>
/// demo 的摘要说明
/// </summary>
public class demo : IHttpHandler
{
public HttpContext context;
public string strResult = "";
public void ProcessRequest(HttpContext context)
{
this.context = context;
string cmd=context.Request.Form["cmd"];
switch(cmd)
{
case"login":
strResult=LoginAjax();
break;
case "reg":
strResult = RegAjax();
break;
}
context.Response.Write(strResult);
} public string RegAjax()
{
string username = context.Request.Form["username"];
string pwd = context.Request.Form["pwd"];
string qq = context.Request.Form["qq"];
string email = context.Request.Form["email"];
string tel = context.Request.Form["tel"]; string strSql = string.Format("select * from login where username='{0}'", username);
if (SqlHelper.Exists(strSql))
{
return "该用户已经被注册";
}
else
{
//string strSql1 = string.Format("insert into login values('{0}','{1}','{2}','{3}','{4}')", pwd, username, qq, email, tel);
string strSql1 = "insert into login values(@pwd,@username,@qq,@email,@tel)";
SqlParameter[] para1 = new SqlParameter[]
{
new SqlParameter("@pwd",SqlDbType.NVarChar),
new SqlParameter("@username",SqlDbType.NVarChar) ,
new SqlParameter("@qq",SqlDbType.NVarChar),
new SqlParameter("@email",SqlDbType.NVarChar) ,
new SqlParameter("@tel",SqlDbType.NVarChar)
};
para1[].Value = pwd;
para1[].Value = username;
para1[].Value = qq;
para1[].Value = email;
para1[].Value = tel;
if (SqlHelper.ExecteNonQueryText(strSql1, para1) > )
{
return "注册成功";
}
else
{
return "注册失败";
}
}
}
public string LoginAjax()
{
//content上下文对象,包括下面2个方法
//Request请求、Response响应
string username = context.Request.Form["username"];
string pwd = context.Request.Form["pwd"];
//string strSql = string.Format("select * from Login where username='{0}' and pwd='{1}'", username, pwd); string strSql = "select * from Login where username=@username and pwd=@pwd";
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@username",SqlDbType.NVarChar),
new SqlParameter("@pwd",SqlDbType.NVarChar)
};
para[].Value = username;
para[].Value = pwd; if (SqlHelper.Exists(strSql))
{
return "登录成功";
}
else
{
return "登录帐号密码不匹配";
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}

情感交流篇:HTML页面如何与后端联系的更多相关文章

  1. 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  2. Ajax如何实现从前端不刷新页面就可以到后端取到数据

    提到axaj很多人总说很难,什么回调函数呀等等就让人心烦,其实懂得ajax在js里面是如何实现向服务器请求数据的原理,那么理解ajax也就不是很难了,现在我们一起来看看. ajax作用:ajax技术的 ...

  3. js技巧专题篇: 页面跳转

    本篇主要介绍网页上常见的页面跳转技术.页面跳转有几种方式,比较常用的是window.location.href,window.location.replace,window.open,当然还有目前比较 ...

  4. day109:MoFang:好友列表显示&添加好友页面初始化&添加好友后端接口

    目录 1.好友列表 2.添加好友-前端 3.服务端提供添加好友的后端接口 1.好友列表 1.在用户中心页面添加好友列表点击入口 html/user.html,用户中心添加好友列表点击入口,代码: &l ...

  5. selenium测试框架篇,页面对象和元素对象的管理

    前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让 ...

  6. Python + Selenium 练习篇 - 获取页面所有邮箱

    代码如下: # coding=utf-8import re    #python中利用正则,需要导入re模块from selenium import webdriverdriver = webdriv ...

  7. 页面jsp向后端发送:HTTP 400错误 - 请求无效(Bad request)

    HTTP 400错误 - 请求无效(Bad request) jsp页面有误 在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说 ...

  8. yii2.0缓存篇之页面缓存

    页面缓存: 如果整个页面都不会发生改变,就可以使用页面缓存缓存整个页面. public function behaviors(){            //此方法[也叫行为]会提前控制器内其他方法执 ...

  9. <css篇>关于页面的绝对定位与相对定位,且支持页面各元素自适应

    (哈哈,第一次写博客,简称处贴?主要记录下平时工作中遇到的问题及其解决方案,方便以后解决此类问题.) 话不多说,上代码看吧 代码有点乱,以后自己能看得懂就行咯 <body > <di ...

随机推荐

  1. JavaScript DOM的一些扩展

    对DOM的扩展主要是:Selectors API和HTML5. Selectors API Selectors API是由W3C发起指定的一个标准,致力于让浏览器原生支持CSS查询.Selectors ...

  2. DELPHI10.3.2安卓SDK安装

    DELPHI10.3.2安卓SDK安装 DELPHI10.3.2默认安装以后,还需要安装安卓SDK,才可以编译安卓项目. 1)运行Android Tools 2)勾选安装下面几个

  3. Messagebox自定义计时关闭

    Messagebox自定义计时关闭 新建Winform项目WindowsFormsAppTESTMessageBoxAutoClose 主窗体代码 using System;using System. ...

  4. Chrome和火狐插件让数以百万计用户隐私数据泄露

      https://tech.163.com/19/0721/12/EKK1PRAU00097U7R.html   网易科技讯7月21日消息,据国外媒体报道,流行浏览器诸如广告拦截等扩展功能,已经遭利 ...

  5. 关于linux下的系统存储管理

    https://blog.csdn.net/aaaaaab_/article/details/80159871 //查看当前系统磁盘使用空间 df -h //查看当前目录文件占用空间大小 du -sh ...

  6. Linux中split大文件分割和cat合并文件

    当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输.这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件. 1.分割 ...

  7. OpenStack Smaug项目简介

    1 项目简介 Smaug是一个OpenStack中提供应用数据保护服务的项目. 2 项目使命 在OpenStack中建立应用数据保护的标准和规范. 保护OpenStack中的任何资源以及资源的依赖项. ...

  8. Java下载HTTP URL链接示例

    这里以下载迅雷U享版为例. 示例代码: package com.zifeiy.snowflake.handle.filesget; import java.io.File; import java.i ...

  9. C#线程 BeginInvoke和EndInvoke使用方法

    一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行.这就需要在同一个进程中开启多个 ...

  10. [c++]struct timeval

    struct timeval { time_t tv_sec; // seconds long tv_usec; // microseconds }; re 1. struct timespec 和 ...