我正在使用Keith Jquery倒计时1.5.8来进行倒计时,并且滴答时间对每个用户来说都是完美的。我在一个php文件中有两个表单(比方说multiform.php)但是当倒计时到零时表单没有提交任何内容。
这是我的jquery代码:
<script type="text/javascript">
$(function () {
$('#defaultCountdown').countdown({until: <?php echo($usertime); ?>,
onExpiry: function() {
$('#quizform').submit();
}
});
});
</script>
我的一些multiform.php代码是:
<?php
if($choice==1) {
?>
...
<form action="submit.php" method="post" name="quizform" id="quizform">
...
...
<input type="submit" name="save_1" value="Save" />
</form>
<?php
} else {
?>
...
<form action="submit.php" method="post" name="quizform" id="quizform">
...
...
<input type="submit" name="save_2" value="Save" />
</form>
和submit.php包含:
if(isset($_POST['save_1'])) {
...do part 1
}
else {
...do part 2
}
表单没有提交任何内容,这些文本输入值都没有提交给“submit.php”。它返回空白。 我做错了吗?
答案 0 :(得分:1)
我想我在这里有解决方案 - 从内存来看,当你使用Javascript提交表单时,而不是点击“提交”按钮,“提交”按钮中保存的值不是载体通过。
示例:
<form method="post" action="submit.php">
<input name="field1" value="One">
<input name="field2" value="Two">
<input type="submit name="save" value="Save">
</form>
通过点击提交“保存”按钮将返回
$_POST = array( 'field1'=>'One' , 'field2'=>'Two' , 'save'=>'Save' );
如果通过Javascript提交,则会返回
$_POST = array( 'field1'=>'One' , 'field2'=>'Two' );
要解决此问题,请添加包含要传输的值的隐藏字段,而不管方法
<form method="post" action="submit.php">
<input type="hidden" name="formID' value="TheFirstForm">
<input name="field1" value="One">
<input name="field2" value="Two">
<input type="submit name="save" value="Save">
</form>
只需点击按钮
即会返回$_POST = array( 'formID'=>'TheFirstForm' ,'field1'=>'One' , 'field2'=>'Two' , 'save'=>'Save' );
并使用Javascript提交
$_POST = array( 'formID'=>'TheFirstForm' ,'field1'=>'One' , 'field2'=>'Two' );