首页 > 解决方案 > 时间到后jQuery发送数据AJAX

问题描述

所以,我有一个必须由用户在一段时间内填写的表格。(仅供参考,它仍然是一个虚拟网络)。假设持续时间为 100 秒。100 秒后,数据应发送到数据库。这是我的代码:

HTML

<div id="countdown"></div>
<form class="test" method="post">
<?php
    for($num=1;$num<=10;$num++){
      echo "<div class=\"question\">" .$num. "<br>"; /* the question is written here */
      echo "<input type=\"radio\" name=\"answer" .$num. "\" value=\"A\">A<br>";
      echo "<input type=\"radio\" name=\"answer" .$num. "\" value=\"B\">B<br>";
      echo "<input type=\"radio\" name=\"answer" .$num. "\" value=\"C\">C<br>";
    }
?>
</form>

为什么我做 PHP 和循环?因为这是我表格的原型,也是为了缩短目的。我不会为真正的网络这样做。但是,如果您认为这是一个坏主意,尽管它只是一个虚拟网络,请告诉我 :)

jQuery

var duration=100;
var countdown=setInterval(timer,1000);

function timer(){
  duration=duration-1;
  $("#countdown").html(duration+" sec");
  if(duration<=0){
    clearInterval(countdown);
    var form_data=$(".test").serialize();

    $.post("action.php",form_data,function(){alert("success!")});
  }
}

动作.php

<?php
  include("connection.php"); /* it's the connection to the database */

  $answer1=$_POST["answer1"];
  $answer2=$_POST["answer2"];
  $answer3=$_POST["answer3"];
  $answer4=$_POST["answer4"];
  $answer5=$_POST["answer5"];
  $answer6=$_POST["answer6"];
  $answer7=$_POST["answer7"];
  $answer8=$_POST["answer8"];
  $answer9=$_POST["answer9"];
  $answer10=$_POST["answer10"];

mysqli_query($link,"INSERT INTO prototype (`answer1`,`answer2`,`answer3`,`answer4`,`answer5`,`answer6`,`answer7`,`answer8`,`answer9`,`answer10`) VALUES ('$answer1','$answer2','$answer3','$answer4','$answer5','$answer6','$answer7','$answer8','$answer9','$answer10')";
?>

所以,问题是:duration = 0后,出现了success action(alert),但是我查了数据库后,没有数据存入。Wut真的发生了吗?

标签: phpjqueryhtml

解决方案


推荐阅读