自动提交的表单不包含表单变量

时间:2011-07-12 15:53:02

标签: php javascript html

以下表格在5秒后使用quto javascript提交时不带表格变量。

正常提交工作正常。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<SCRIPT LANGUAGE="JavaScript"><!--
setTimeout('document.test.submit()',5000);
//--></SCRIPT>

</head>
<body>
<form name="test" id="form1" method="post" action="auto2.php">
  <p>
    <INPUT TYPE=checkbox NAME="test" VALUE="option1"> Option1
    <INPUT TYPE=checkbox NAME="test" VALUE="option2"> Option2
    <INPUT TYPE=checkbox NAME="test" VALUE="option3"> Option3   
  </p>
  <p><input type="submit" name="submit_test" value="Submit_test" />
&nbsp;  </p>
</form>
</body>
</html>
---------------------------------------------------------------

output page:

--------------------------------------------------------------
<?php

if(isset($_POST['submit_test'])){
$variable=$_POST['test'];

echo $variable;

}

?>

非常感谢任何帮助..谢谢。

3 个答案:

答案 0 :(得分:5)

您正在测试是否设置了submit_test按钮值:

if(isset($_POST['submit_test'])){

自动提交表单不会设置值,因此您的测试失败。

您应该测试其他表单字段,例如隐藏元素。

答案 1 :(得分:2)

除非选中复选框,否则您不会得到任何回复(空白或其他)

你应该拥有的是

<input type=hidden name="test" value="">
<INPUT TYPE=checkbox NAME="test" VALUE="option1"> Option1
<INPUT TYPE=checkbox NAME="test" VALUE="option2"> Option2
<INPUT TYPE=checkbox NAME="test" VALUE="option3"> Option3  

这样,当您发布表单时,您会获得默认值

答案 2 :(得分:0)

+1对Pekka的回答。

如果您执行以下操作,它将检查页面是否已过帐,而不要求在帖子中设置变量。

if ($_SERVER['REQUEST_METHOD'] === 'POST') { ... }

您可能还应该进行某种形式的验证,以确保它来自您预期的位置。