两个页面的内容如何一起提交

mizuho_2006 2012-10-26 04:49:59
做一个注册页面,要填写的内容过多,打算分第一步和第二步两个页面让用户填写信息。

问题是到第二步时,第一步的页面信息暂存到哪里呢?因为数据量太多了,存到session和cookie里感觉不合适。
如何才能做到全部填写完成后,一起提交两个页面的注册信息?而不是做成一个页面两个div的形式。
...全文
293 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mizuho_2006 2012-10-28
  • 打赏
  • 举报
回复
谢谢大家的帮助
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
因为我看网上有人做的是 registerone.php和registertwo.php这样的两个不同注册页面最后一起提交,所以想怎么才能实现。。我最开始想的也是用两个div模拟实现的。iframe也能实现呢,学习了。

2L老师可以说一下具体怎么实现吗
[/Quote]

对于这样的页面跳转布局,将数据放在数据库中是一种比较正统的方式。数据以(临时生成的)SessionID为索引。
weiyz2011 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 3 楼 的回复:
因为我看网上有人做的是 registerone.php和registertwo.php这样的两个不同注册页面最后一起提交,所以想怎么才能实现。。我最开始想的也是用两个div模拟实现的。iframe也能实现呢,学习了。

2L老师可以说一下具体怎么实现吗


对于这样的页面跳转布局,将数据放在数据库中是一种比较正统的方式。数据以(临时生成的)SessionID……
[/Quote]
正解
遊戲王千金 2012-10-27
  • 打赏
  • 举报
回复
该问题我也遇到过,解决方式跟7楼差不多用一个session保存。
但不是用动态数组,用Hashtable,因为要考虑到用户可以返回上一步,可以改资料

Hashtable ht = null;
if (Session["step1"] == null && Session["step1"] != "")
ht = new Hashtable(); //实例化一个Hashtable。
else
ht = (Hashtable)Session["step1"];
string[] filed = { "turename", "radGender", "ddlCountry", "ddlId_name", "idcard", "tel", "email", "qq", "addr", "ddlReType", "imgverify", "verify" };
string[] filedValue = { turename.Value, radGender.SelectedValue, ddlCountry.SelectedValue, ddlId_name.SelectedValue, idcard.Value, tel.Value, email.Value, qq.Value, addr.Value, ddlReType.SelectedValue, imgverify.Value, verify.Value };
for (int i = 0; i < filed.Length; i++)
{
string key = filed[i].ToString();
string value = filedValue[i].ToString();
if (ht.Contains(key))
{
ht.Remove(key);
ht.Add(key, filedValue[i].ToString());
}
else
{
ht.Add(key, value);
}
}

Session["step1"] = ht
hh8527 2012-10-27
  • 打赏
  • 举报
回复
可以这样,在第二页放几个hidden存放第一页的内容,比如第一页有姓名,年龄,在第二页就放hdnName,hdnAge,在第一页将值提交过去,存在Hidden里
yoyo_ 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

页面中的数据,要么保存在客户端,如hidden、cookie...,要么保存在服务器端,如session、cache...,如果是两个物理页面,而不是两个div,想要一起提交,那么服务器端保存数据的方法就行不通了(因为需要提交),而只能保存在客户端。
保存在客户端,最后的办法就是用div模拟多页面,而这种思路又被LZ所抛弃,因为只能用另一种可切的办法,就是frameset或iframe,两个页……
[/Quote]

或者,把第一页填的信息保存到动态数组里面,然后用session把动态数组保存,提交的时候,在循环取出来就行了
mngzilin 2012-10-27
  • 打赏
  • 举报
回复
保存到js对象中: var obj={a:1,b:"sfs"};obj.c="sfafsa";

然后把obj序列化为json字符串post到服务端,反序列化为C#对象
色拉油 2012-10-26
  • 打赏
  • 举报
回复
做在一个页面的两个DIV上不就行了,做成wizard那种,一个显示一个隐藏
mizuho_2006 2012-10-26
  • 打赏
  • 举报
回复
因为我看网上有人做的是 registerone.php和registertwo.php这样的两个不同注册页面最后一起提交,所以想怎么才能实现。。我最开始想的也是用两个div模拟实现的。iframe也能实现呢,学习了。

2L老师可以说一下具体怎么实现吗
wuyq11 2012-10-26
  • 打赏
  • 举报
回复
asp:placeholder控制,通过按钮设置显示
hiddenfield可设置值
lyserver 2012-10-26
  • 打赏
  • 举报
回复
页面中的数据,要么保存在客户端,如hidden、cookie...,要么保存在服务器端,如session、cache...,如果是两个物理页面,而不是两个div,想要一起提交,那么服务器端保存数据的方法就行不通了(因为需要提交),而只能保存在客户端。
保存在客户端,最后的办法就是用div模拟多页面,而这种思路又被LZ所抛弃,因为只能用另一种可切的办法,就是frameset或iframe,两个页面都以子frame/iframe页面形式出现,第一个页面提交按钮不为submit而为button,点击时不上传form,而是把该页面中的form中的各个字段值保存到第二个页面的hidden中,然后隐藏该frame/iframe,待第二个页面提交时,服务器从该页面指定的hidden中读出第一个页面中各个字段的值就OK了。
不过,从LZ需要的功能来看,还是用一个页面两丰div来实现最好。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧