javascript - 使用 JavaScript 自动提交 Php 表单

标签 javascript php jquery json ajax

我知道这个问题已经得到解答,但它对我不起作用。我正在创建一个 mcq 问题页面。其中问题是由 Json 文件生成的。我设置了 90 分钟的时间限制来解决问题,90 分钟后表单必须自动提交表单到表单的 action="page"。我尝试使用设置超时,但失败了,而且我也没有收到任何错误。

这是 HTM 和 PHP 中的表单

  <div class="col-md-8">
     echo   <form id="gi" method="post" name="mockForm" action="checkAnswer.php">

      <?php
      foreach ($json_data as $key => $value) {
          echo
          "<p><span class='que'> Question</span>&nbsp;&nbsp". $value['number']."&nbsp;&nbsp". "<br><hr class='line'>". $value['question']."<br><br>".
          "<pre>"."<input type='radio'  name='question" . $value['number']."' value='op1' required>" ." " , $value['op1']."</pre>".
          "<pre>"."<input type='radio' name='question" . $value['number']."' value='op2' required>" ." " , $value['op2']."</pre>".
          "<pre>"."<input type='radio' name='question" . $value['number']."' value='op3' required>"." "  , $value['op3']."</pre>".
          "<pre>"."<input type='radio' name='question" . $value['number']."' value='op4' required>"." " , $value['op4']."</pre>".
          "<pre>"."<input type='radio' name='question" . $value['number']."' value='0' required>"."LEAVE QUESTION"."</pre>".

              "</p>";
      }
      ?>
      <input class="submitBtn" type="submit" name="submit" value="SUBMIT">
      <button onclick="hit(); handleClick();">click</button>
       </form>

这是Js

    setTimeout(function(){
        $('#gi').submit();
    },10000);
</script>

checkANswer.php


<?php
$contentOfJsonFile = file_get_contents("example_10.json");
$JsonData = json_decode($contentOfJsonFile, true);

$correctAnswerArray = [];

$wrongCount = 0;
$correctCount = 0;
foreach ($JsonData as $key => $value) {
    array_push($correctAnswerArray, $value['correct_answer']);
}

    $userAnswerArray = $_POST;

$breakForeach = count($userAnswerArray) - 1;
$loopRun = 0;
foreach ($userAnswerArray as $key => $answer) {


    $questionNumber = substr($key, -1);

    if ($correctAnswerArray[$questionNumber] === $answer) {
        # increment correct
        $correctCount++;
    } else if($correctAnswerArray[$questionNumber] === 0) {
        # increment wrong
        $wrongCount++;
    }
    else {
        $wrongCount++;
    }


$loopRun++;

    if($breakForeach == $loopRun ) break;
}
echo "<br>".$correctCount."<br>";
echo $wrongCount;

?>

最佳答案

试试这个功能

window.setTimeout(function() {
 document.forms['mockForm'].submit();
 }, 10000 );

关于javascript - 使用 JavaScript 自动提交 Php 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58967596/

相关文章:

php - 如何在 .htaccess 中禁用 mod_security 和 mod_security2

php - 获取 WooCommerce 订单中每个项目的产品类别

javascript - 可以在 Vue.js 文档之外分离和重新附加 Vue.js 节点吗?

javascript - Angular2 - NgIf 无法从订阅访问我的变量

javascript - 带有显示 :none property 的 div 的淡入动画

javascript - 将随机javascript数组值动态传递给html img src

php - 在代码中组织 MySQL 查询的正确方法?

javascript - 添加图像叠加层时出现问题 (jQuery)

javascript - 以特定方式对齐水平列表中的图像

javascript - 有没有办法为您的函数制作 "cooldown"?