写一个简单的注册页面,
想让注册成功后跳转到下一个页面,可是不管用,
一个是注册页面,defalut是用来判断和写入数据库的页面
logo是注册后想跳入的页面。
实现不了,
注册页面代码:<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="regest.aspx.cs" Inherits="regest" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function checkName() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = document.getElementById("username").value;
if (name == null) {
alert("用户名为空");
return;
}
var url = "Default.aspx?name="+escape(name)+"&type=checkName";
xmlhttp.open("get", url, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
document.getElementById('span1').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
function sub_onclick() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = document.getElementById("username").value;
var pass = document.getElementById("password").value;
var email = document.getElementById("email").value;
var url = "Default.aspx?name="+escape(name)+"&password=" + escape(pass) + "&email=" + escape(email) + "&type=submit";
xmlhttp.open("get", url, true);
xmlhttp.send(null);
} </script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<caption>
用户注册
</caption>
<tr>
<td>
<label for="username">用户名</label>
</td>
<td>
<input type="text" name="username" id="username" onchange="checkName()"/>
</td>
<td style="color:Red">
<span id="span1"></span>
</td>
</tr>
<tr>
<td>
<label for="password">密码</label>
</td>
<td>
<input type="password" id="password" runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="密码为空" ControlToValidate="password"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<label>电子邮件</label>
</td>
<td>
<input type="text" id="email" runat="server"/>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="邮箱为空" ControlToValidate="email"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ControlToValidate="email" ID="RegularExpressionValidator1" runat="server" ErrorMessage="输入格式错误" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" id="sub" value="注册" onclick="sub_onclick()" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
defalut页面代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string type = Request["type"];
if (type == "checkName")
{
string Name = Request["name"];
CMyConnection name = new CMyConnection();
string sqlstr = "select * from users where username='"+ Name+"'";
if (name.doSelect(sqlstr, "userna").Tables["userna"].Rows.Count!=0)
{
Response.Clear();
Response.Write("用户名已存在");
Response.End();
}
else
{
Response.Clear();
Response.Write("");
Response.End();
}
}
if (type == "submit")
{
string Name = Request["name"];
string password = Request["password"];
string email = Request["email"];
string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";
CMyConnection submit = new CMyConnection();
submit.doInsert(sqlinsert);
Response.Redirect("logo.aspx");
}
}
}
想让注册成功后跳转到下一个页面,可是不管用,
一个是注册页面,defalut是用来判断和写入数据库的页面
logo是注册后想跳入的页面。
实现不了,
注册页面代码:<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="regest.aspx.cs" Inherits="regest" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function checkName() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = document.getElementById("username").value;
if (name == null) {
alert("用户名为空");
return;
}
var url = "Default.aspx?name="+escape(name)+"&type=checkName";
xmlhttp.open("get", url, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
document.getElementById('span1').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
function sub_onclick() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = document.getElementById("username").value;
var pass = document.getElementById("password").value;
var email = document.getElementById("email").value;
var url = "Default.aspx?name="+escape(name)+"&password=" + escape(pass) + "&email=" + escape(email) + "&type=submit";
xmlhttp.open("get", url, true);
xmlhttp.send(null);
} </script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<caption>
用户注册
</caption>
<tr>
<td>
<label for="username">用户名</label>
</td>
<td>
<input type="text" name="username" id="username" onchange="checkName()"/>
</td>
<td style="color:Red">
<span id="span1"></span>
</td>
</tr>
<tr>
<td>
<label for="password">密码</label>
</td>
<td>
<input type="password" id="password" runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="密码为空" ControlToValidate="password"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<label>电子邮件</label>
</td>
<td>
<input type="text" id="email" runat="server"/>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="邮箱为空" ControlToValidate="email"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ControlToValidate="email" ID="RegularExpressionValidator1" runat="server" ErrorMessage="输入格式错误" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" id="sub" value="注册" onclick="sub_onclick()" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
defalut页面代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string type = Request["type"];
if (type == "checkName")
{
string Name = Request["name"];
CMyConnection name = new CMyConnection();
string sqlstr = "select * from users where username='"+ Name+"'";
if (name.doSelect(sqlstr, "userna").Tables["userna"].Rows.Count!=0)
{
Response.Clear();
Response.Write("用户名已存在");
Response.End();
}
else
{
Response.Clear();
Response.Write("");
Response.End();
}
}
if (type == "submit")
{
string Name = Request["name"];
string password = Request["password"];
string email = Request["email"];
string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";
CMyConnection submit = new CMyConnection();
submit.doInsert(sqlinsert);
Response.Redirect("logo.aspx");
}
}
}
logo.aspx和default.aspx在同一级吗?路径有问题吧。
string sqlinsert = "insert into users(username,password,email) values('" + Name + "','" + password + "','" + email + "')";你这打个断点,跟踪一下,30秒发现问题。
把下面的这些个去掉 Response.End();
{
string Name = Request["name"];
string password = Request["password"];
string email = Request["email"];
string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";
CMyConnection submit = new CMyConnection();
submit.doInsert(sqlinsert);
//Response.Redirect("logo.aspx"); //不在这里跳转
Response.Write("true"); //返回一个值,让JS捕捉并判断是否跳转
Response.End();
}
}再修改regest.aspx页Javasciprtvar name = document.getElementById("username").value;
var pass = document.getElementById("password").value;
var email = document.getElementById("email").value;
var url = "Default.aspx?name="+escape(name)+"&password=" + escape(pass) + "&email=" + escape(email) + "&type=submit";
//定义AJAX回调事件
xmlhttp.onreadystatechange=function(){
var re=xmlhttp.responseText;
alert(re);//提示一下看看返回值是什么
if(re=='true')
window.location.href='logo.aspx';//跳转到目标页
}; xmlhttp.open("get", url, true);
xmlhttp.send(null);
你是通过来提交到数库的。后台是不会跳转。