1

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

3 回答 3

2

您的 HTML 代码无效:

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

后面缺少双引号POST

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

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

于 2013-05-27T23:48:29.593 回答
1

我认为它只需要你给每个表格一个名字。示例name=somethingname=somethingelse摆脱问题。

于 2013-05-27T23:47:51.890 回答
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();

来源:移动节点

于 2013-05-27T23:55:22.050 回答