你的位置:| 首页网站建设提交表单内容出错后返回旧内容仍保留功能的实现→文章正文  
文章导航

提交表单内容出错后返回旧内容仍保留功能的实现

onclick="$('.ui-dialog').dialog('close'); return false;"代码放置在表单的提交按钮上。

实例:
<input name="Sub_reg" type="submit" id="Sub_reg" style="height:18px" onclick="$('.ui-dialog').dialog('close'); return false;" value="提交">

===============================================

在html中

Html如何使表达提交后,点回退/返回,保留表单数据?

如果a页是一个表单,提交时因某种原因转至出错页面b,如何在b中返回已填写数据的表单a(数据不变)?

表单a,要保留的都使用class=saveHistory (样式可有可无)

<HTML>

<HEAD>

<META NAME="save" CONTENT="history">

<STYLE>

.saveHistory {behavior:url(#default#savehistory);}

</STYLE>

</HEAD>

<BODY>

<FORM name=a>

<INPUT class=saveHistory type=text id=oPersistInput>

</FORM>

</BODY>

</HTML>


---------------------------------------------------------------

注意: meta中必须设置 name=save content=history

上面的代码确保表单a(数据不变),后退功能在出错页面b可以使用history.back()或history.go(-1)都可以实现,例如:

<input type=button value=Back onclick=history.back()>

<input type=button value=Back onclick=history.go(-1)>

=============================================

在php语言中

1.使用header头设置缓存控制头Cache-control。

PHP代码如下:

header('Cache-control: private, must-revalidate'); //支持页面回跳

2.使用session_cache_limiter方法。

PHP代码如下:

session_cache_limiter('private, must-revalidate'); //要写在session_start方法之前

下面介绍一下session_cache_limiter参数:

session_cache_limiter内的几个参数意义是:
nocache:当然是不缓存(比如:表单信息被清除),但公共变量可以缓存
private:私有方式缓存(比如:表单信息被保留,但在生存期内有效)
private_no_cache:私有方式但不过期(表单信息被保留)
publice:公有方式,(表单信息也被保留)
设置缓存过期时间:session_cache_expire函数设置,缺省是180分钟。

常遇见问题:

1.session_cache_limiter("private");表单信息是保留了,但是如果我修改已经提交的信息,表单页面所呈现的信息还是缓存里信息,没能及时自动刷新,如果不用session_cache_limiter("private");又不能保留表单信息
解决方案:

在session_start前面加上

session_cache_limiter( "private, must-revalidate" );

即可。

2.另一种办法我们可以使用ajax来实例

index.html模板文件大致内容如下:

<html> <head> <title>jQuery Ajax 实例演示</title> </head> <script src="./js/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){//这个就是jQueryready ,它就像C语言的main 所有操作包含在它里面 $("#button_login").mousedown(function(){ login(); //点击ID为"button_login"的按钮后触发函数 login(); }); function login(){ //函数 login(); var username = $("#username").val();//取框中的用户名 var password = $("#password").val();//取框中的密码 $.ajax({ //一个Ajax过程 type: "post", //以post方式与后台沟通 url : "login.php", //与此php页面沟通 dataType:'json',//从php返回的值以 JSON方式 解释 data: 'username='+username+'&password='+password, //发给php的数据有两项,分别是上面传来的u和p success: function(json){//如果调用php成功 //alert(json.username+'n'+json.password); //把php中的返回值(json.username)给 alert出来 $('#result').html("姓名:" + json.username + "<br/>密码:" + json.password); //把php中的返回值显示在预定义的result定位符位置 } }); } //$.post()方式: $('#test_post').mousedown(function (){ $.post( 'login.php', { username:$('#username').val(), password:$('#password').val() }, function (data) //回传函数 { var myjson=''; eval_r('myjson=' + data + ';'); $('#result').html("姓名1:" + myjson.username + "<br/>密码1:" + myjson.password); } ); }); //$.get()方式: $('#test_get').mousedown(function (){ $.get( 'login.php', { username:$('#username').val(), password:$('#password').val() }, function(data) //回传函数 { var myjson=''; eval_r("myjson=" + data + ";"); $('#result').html("姓名2:" + myjson.username + "<br/>密码2:" + myjson.password); } ); }); }); </script> <body> <div></div> <form action="" method="post"> <p><span>输入姓名:</span><input type="text" /></p> <p><span>输入密码:</span><input type="text" /></p> </form> <button>ajax提交</button> <button>post提交</button> <button>get提交</button> </body> </html>

login.php文件的内容如下:

<?php echo json_encode(array ('username'=>$_REQUEST['username'],'password'=>$_REQUEST['password'])); ?>

这样的话我们提交不需要刷新页面了,如果失败就直接会有提交了,这样可以100%保存提交失败后数据不被丢失了。

  上一页 1 2 3 4 5 下一页
 
公司简介 在线客服 客服中心 意见反馈 相关法律 隐私条款 广告服务 友情链接
Q链:515347638  电子邮箱:hanen@126.com 粤ICP备05086553