3

POST在经过一定时间后,是否可以在 PHP 中生成表单?我正在我的网站上为学生创建一个测试部分,他们将在其中给出 MCQ 的答案。时间结束后,应立即将结果发布到下一页<form action="">

请告诉我是否可以有任何其他选择来实现相同的目标。

我不赞成使用 javascript,因为我将有数十名学生,而且他们的计算机上可能都没有安装 javascript。

编辑以添加我的代码,包括以下答案中的 JavaScript:

这不起作用:

<html>
<head>
    <script>
    window.setTimeout(function() {
        document.forms['test_form'].post();
    }, 2000);
    </script>
</head>

<?php

define("HOST", "localhost"); // The host you want to connect to.
define("USER", "admin"); // The database username.
define("PASSWORD", "admin"); // The database password. 
define("DATABASE", "test"); // The database name.
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
//some PHP code wil com here...
?>

<body>
    <form action="test_submit.php" method="post" name="test_form">
        <label>This is Question #1:</label>
        <input type="radio" name="ans1" id="ans1">Answer1</input>
        <input type="radio" name="ans2" id="ans2">Answer2</input>
    </form>
</body>
</html>

它没有像我预期的那样在 2 秒后将页面转发到 test_submit.php ......

4

1 回答 1

7

简单的答案是否定的。PHP 是一种服务器端语言,无法控制客户端(例如浏览器)。

您可以做您想做的事的唯一方法是使用 JavaScript。JavaScript 允许您控制表单的流程,包括让它们提交。

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

您的表单在哪里form_name,1000 是以毫秒为单位延迟发布的时间(即 1000 = 1 秒)。

如果您的表单没有名称(但有 id),您也可以使用 DOM 执行此操作:

window.setTimeout(function() {
    document.getElementById('form_id').submit();
}, 1000);

form_id您的表单的 id 属性在哪里。

于 2013-07-05T10:28:13.373 回答