在一个html页面上使用两个表单

时间:2013-05-27 23:38:42

标签: php forms post

我需要在一个页面上使用两个表单。 当我点击第一个提交按钮时 - 一切正常。 但是当我点击第二个时 - 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>

3 个答案:

答案 0 :(得分:2)

您的HTML代码无效:

<form action="MAIN.php" method="POST>

POST之后缺少双引号:

<form action="MAIN.php" method="POST">

这可能会导致您的表单失败。

答案 1 :(得分:1)

我认为只需要给每个表单命名。示例name=somethingname=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

相关问题