Jquery自动表单提交,但什么都不返回

时间:2010-07-21 07:34:54

标签: php jquery

我正在使用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”。它返回空白。 我做错了吗?

1 个答案:

答案 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' );