我需要在一个页面上使用两个表单。 当我点击第一个提交按钮时 - 一切正常。 但是当我点击第二个时 - POST返回0个元素的数组。 可能有什么问题?
第一
<form action="MAIN.php" method="POST">
<input type="submit" name="Switch" value="<?php if ($_POST) { if ($_POST['Switch']=="Оперативный анализ данных") echo "Интеллектуальный анализ данных"; else echo "Оперативный анализ данных"; } else echo "Интеллектуальный анализ данных"; ?>">
<input type="hidden" name="Report" value="GoodsPlace">
</form>
第二
<form action="MAIN.php" method="POST>
<input type="hidden" name="Switch" value="Оперативный анализ данных">
<select name="Report">
<option <?php if ($_POST && $_POST['Report']=="GoodsPlace") echo "selected"?> value="GoodsPlace">Товар - Место</option>
<option <?php if ($_POST && $_POST['Report']=="PlaceGoods") echo "selected"?> value="PlaceGoods">Место - Товар</option>
<option <?php if ($_POST && $_POST['Report']=="TimeGoods") echo "selected"?> value="TimeGoods">Время - Товар</option>
<option <?php if ($_POST && $_POST['Report']=="GoodsTime") echo "selected"?> value="GoodsTime">Товар - Время</option>
<option <?php if ($_POST && $_POST['Report']=="PlaceTime") echo "selected"?> value="PlaceTime">Место - Время</option>
<option <?php if ($_POST && $_POST['Report']=="TimePlace") echo "selected"?> value="TimePlace">Время - Место</option>
</select>
<input type="submit" name="submit" value="Показать">
</form>
答案 0 :(得分:2)
您的HTML代码无效:
<form action="MAIN.php" method="POST>
POST
之后缺少双引号:
<form action="MAIN.php" method="POST">
这可能会导致您的表单失败。
答案 1 :(得分:1)
我认为只需要给每个表单命名。示例name=something
和name=somethingelse
以解决问题。
答案 2 :(得分:0)
在提交时,您可以在javascript中创建一个新表单并将这两个表单连接在一起(循环遍历子节点),如下所示
var form = document.createElement("form");
form.method="post";
var forms = document.getElementsByTagName("form");
for(var i=0,j=forms.length; i<j; i++)
{
for(var k=0,l<forms[i].childNodes.length; k<l; k++)
{
var node = forms[i].childNodes[k];
if(node.name&&node.value!=null)
{
form.appendChild(node.parentNode.removeChild(node));//Move Node
}
}
}
form.submit();
或者,甚至更好,在您要提交的所有输入上,附上课程"tosubmit"
:
var form = document.createElement("form");
form.method="post";
var inputs = document.getElementsByClassName("tosubmit");
for(var i=0,j=inputs.length; i<j; i++)
{
form.appendChild(inputs[i].parentNode.removeChild(inputs[i]));//Move Node
}
form.submit();
来源:Move nodes