<?php $date = date('m-d-Y'); ?>
<form class="signin" method="POST" action="2ndpage.php">
<h1>Validate</h1>
<input name="date" type="text" autocomplete="on" id="calendar" value="<?php echo $date ?>" />
<div id="rtime"></div>
<button type="submit">Next page</button>
第二页:
$d = $_POST['date'];
$t = $_POST['mytime'];
$d输出的是我想要的日期,但$t返回的是未定义的索引。
"rtime"是一个运行时间(Javascript),但这不是问题。问题是如何获得div("rtime")的值将显示到下一页,我可以使用。更有可能说,我想做一个用户交易的报告,并写上日期和时间。
困惑。请帮助。
添加一个隐藏的输入字段。
<form class="signin" method="POST" action="2ndpage.php" onsubmit="update_time()">
<h1>Validate</h1>
<input name="date" type="text" autocomplete="on" id="calendar" value="<?php echo $date ?>" />
<input name="mytime" type="hidden" id="mytime">
然后在Javascript中,onsubmit
处理程序可以从rtime
DIV复制到这个字段。
function update_time() {
document.getElementById('mytime').value = document.getElementById('rtime').innerHTML;
}
看起来好像你缺少一个叫做mytime
的input element
。
<?php
$date = date('m-d-Y');
$time = date('H:i');
?>
<input name="date" type="text" autocomplete="on" id="calendar" value="<?php echo $date ?>" />
<input name="mytime" type="text" autocomplete="on" id="calendar" value="<?php echo $time ?>" />
如果你想要的值是由JavaScript生成的,你可以:
让JavaScript将该值插入到表单中的隐藏输入
或者使用Ajax。
$t在2ndpage.php是未定义的,因为(在您的第一页)没有<input>
字段的名称mytime
。
$d值被检索是因为:
$d = $_POST['date'];
匹配这个(注意name=
参数):
<input name="date" value="<?php echo $date ?>" />
要显示$t,您需要这样做(再次注意name=
参数):
<input name="mytime" value="time_goes_here">
当一个表单被post到另一个PHP文件时,每个name
成为一个变量的名称,并且存储在元素中的value
成为另一边变量的值。
您可以通过$_POST:
检索这些"变量"您必须在第二个PHP文件中创建一个NEW变量(通常使用与第一页完全相同的名称-即元素的
name
参数)变量的值通过$_POST命令检索,引用第1页的
name
:$thetime = $_POST['mytime'];
要通过该DIV传递一个值,可以在提交表单之前使用jQuery在DIV中插入一个带有name
的<input>
元素。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('button').click(function() {
//Next line adds a hidden field `mytime` with text value
//$('#rtime').html('<input name="mytime" value="Two oclock">');
//Below adds hidden field `mytime` with current time string
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var strTime = h+':'+m+':'+s;
//alert(strTime);
$('#rtime').html('<input name="mytime" value="'+strTime+'">');
//return false;
});
}); //END $(document).ready()
</script>
</head>
<body>
<?php $date = date('m-d-Y'); ?>
<form class="signin" method="POST" action="test108b.php">
<h1>Validate</h1>
<input name="date" type="text" id="calendar" value="<?php echo $date ?>" />
<div id="rtime" name="mytime"></div>
<button type="submit">Next page</button>
</body>
</html>
可以添加名称为mytime
的隐藏输入
<input id="mytime" name="mytime" type="hidden" />
现在你的JavaScript计时器必须在输入
中设置值$("#mytime").val(actual_time);