我遇到以下问题。我有一个包含几个链接的表格。 这些链接应该分配一个隐藏字段并使用一些 JavaScript 提交表单。
我使用的是 PHP 5.4。
当我使用按钮提交表单时,$_POST 包含数据。但是当表单是通过 javascript 提交时,$_POST 是空的。
有什么线索吗?
<head>
<script language="text/javascript">
function affect(numMet)
{
document.forms['frmDemo'].num_met_choose.value = numMet;
document.forms['frmDemo'].submit();
}
</script>
</head>
<body>
<?php
var_dump($_POST);
?>
<form name="frmDemo" enctype="multipart/form-data" method="POST">
<input name="num_met_choose" id="num_met_choose">
<a href="" onClick="javascript:affect('22');" >test 1</a>
<a href="" onClick="javascript:affect('12');" >test 2</a>
<button id="submit" type="submit">OK</button>
</form>
最佳答案
你有两个问题。
第一个是这样的:
document.forms['frmDemo'].submit();
与此结合:
<button id="submit" type="submit">OK</button>
通过在表单中使用带有 id="submit"
的表单控件,您可以覆盖表单对象的 submit
属性。它不是一个可以调用的函数,而是对 id submit
的元素的引用。
您需要使用不同的 ID(或者根本不用,因为您似乎没有将其用于任何用途)。
您的浏览器 JavaScript 控制台中应该出现错误。当你的 JS 表现不符合你的预期时,请务必留意这一点。
即使你解决了这个问题,你还会遇到另一个问题:
<a href="" onClick="javascript:affect('22');" >test 1</a>
- JavaScript 运行
- 表单即将提交
- 链接已被点击,因此表单最终不会提交
不要使用链接作为运行 JS 的东西(除非您希望它作为链接运行,或者将其设置为使用链接作为后备)。
改用按钮(type="button"
)。
也就是说。根本不要为此使用 JavaScript。您可以使用纯 HTML 获得相同的效果。
<form enctype="multipart/form-data" method="POST">
<button type="submit" name="num_met_choose" value="22">test 1</button>
<button type="submit" name="num_met_choose" value="12">test 2</button>
</form>
关于javascript - 从链接提交表单并获取 $_Post 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29946117/