PHP可以在计时器到期后提交HTML表单吗?

时间:2013-07-05 10:26:08

标签: php javascript html mysql

在某段时间过后,PHP中是否有可能POST表格?我正在我的网站上为学生创建一个测试部分,他们将为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 ......

1 个答案:

答案 0 :(得分: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属性。