繁体   English   中英

从页面刷新中的html获取表单数据(php)

[英]Get Form data from html on page refresh(php)

我的大学项目又遇到了一个小问题:(

<input type="text" name="timrem" value="" />

这是我想要数据的隐藏字段。

if(isset($_REQUEST['timrem']))
{
    $tim=$_REQUEST['timrem'];
}

这是用于从timrem获取值的代码。
变量timrem用于初始化页面上的倒计时序列(使用javascript实现)

<span id="countdown-1" style="float:right"><?php echo $tim;?>

隐藏字段的值通过实现的Java脚本计数器动态更改。

sremtime=(parseInt(minRemain*60)) + (parseInt(secsRemain));
document.frmTest.timrem.value=sremtime;

提交页面时,此方法工作正常,即,时间不会从下一页重新开始。 但是,刷新页面时,计时器将在计时器首次启动时重新启动为$tim的值。

是否有可能以某种方式获取页面刷新时隐藏输入的值?

另外,请评论为节省时间而采取的方法到下一页。 这是一个在线检查项目。

一个好主意可能是将时间戳存储在PHP页面或数据库中(供多个用户使用),然后使用它生成$ tim。 由于没有触发任何请求,因此似乎无法通过刷新传递数据。

您如何在网址中存储“目标时间”(剩余时间将倒数)。 您甚至可以将其存储在新纪元中:

myurl.com/stuff.html?target_time=1359553896

这样,刷新页面后,您仍然可以拥有它,并且可以计算出剩余时间。 如果您不想在网址中使用它,则可以将其隐藏在页面上某个带有display:none样式的地方。

这样的事情怎么样:

http://jsfiddle.net/QpZcV/1/

如果您需要变量在刷新之间保持不变,则不能依赖从客户端传递回服务器的信息。 您唯一可以依靠的信息是在第一次请求时传递的信息,这显然不包括您的时间。 我能想到的最好的解决方案是将时间戳存储在服务器上的会话变量中:

session_start();
if(empty($_SESSION['timrem'])) $_SESSION['timrem'] = time(); // set this if it is the first time this page is loaded
$tim = time() - $_SESSION['timrem']; // $tim is now the number of seconds since the page was first loaded in this session

您无需在客户端和服务器之间来回传递时间来跟踪它,尽管您的javascript可能会需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM