两种形式提交值
问题描述:
我有一个HTML网页两种形式两种形式提交值
<form name="a" action="add.php" class="a" method="post">
XYZ?<br />
<div class="radio">
<i>
<input type="radio" name="n" value="1">Yes
<input type="radio" name="n" value="2">No
<br>
</i>
</div>
</form>
<form name="b" action="add.php" class="b" method="post">
XYZ<br />
<div class="radio">
<i>
<input type="radio" name="odp" value="1">1 - Bad
<input type="radio" name="odp" value="2">2 - Poor
<input type="radio" name="odp" value="3">3 - Fair
<input type="radio" name="odp" value="4">4 - Good
<input type="radio" name="odp" value="5">5 - Excellent
<br>
</i>
</div>
</form>
然后我提交他们与JavaScript的一个按钮,因为我不知道该怎么做,在不同的方式
<div class="confirm" onClick="submitForms()">
<a href="#" >Confirm</a>
</div>
<script>
submitForms = function(){
document.forms["a"].submit();
document.forms["b"].submit();
}
</script>
当我去add.php我从0形式得到错误的值,并正确的值
$n= $_POST['n'];
$odp = $_POST['odp'];
你知道为什么吗?
答
表单不提交其他<form>...</form>
标签的字段。他们只提交自己定义的字段。
您也不能同时提交多个表单。
因此无论哪种形式的<submit>
按钮被按下确定字段的提交。如果您点击n
表单上的提交,您将获得n
值。如果您点击odb submit,您将获得odp值。从不,反之亦然。
提交表单与点击页面上的链接基本相同 - 浏览器立即开始加载目标链接,并离开当前页面。所以你的a.submit()
开始这个动作,并且可能b.submit()
永远不会有机会执行。
你可以一次提交两份表格吗? – Dale
您一次只能提交一份表格。要么组合它们,要么使用ajax – rjdown
是否有理由将它们分成两种形式。如果您在同一时间提交,为什么不只是合并和提交。只要它们全都包含在表单标记中,您可以将这些字段分散到任意位置。 –