需要在PHP中发送数组

时间:2019-05-08 16:13:58

标签: php html

我正在尝试将倍数值发送到PHP表单。 这是我用来发送值的表格:

<form id="form1" name="form1" method="POST" action="../WSweb/Factura.php">
    <table width="561" height="79" border="1">
        <tr>
            <td width="30%" height="32">ProductID</td>
            <td width="30%" height="32">SKU</td>
        </tr>
        <?php do { ?>
            <tr>
                <td><?php echo $row_test1['ProductID']; ?>
                    <input
                        type="hidden"
                        name="Product[id][ProductID]"
                        value="<?php echo $row_test1['ProductID']; ?>"
                    />
                </td>
                <td><?php echo $row_test1['SKU']; ?>
                    <input
                        type="hidden"
                        name="Product[id][SKU]"
                        value="<?php echo $row_test1['SKU']; ?>"
                    />
                </td>
            </tr>
        <?php } while ($row_test1 = mysqli_fetch_assoc($test1)); ?>
    </table>

    <input type="submit" value="Update" name="Facturar">
</form>

这是动作文件:

if(isset($_POST['Update']))
{
    $ProductID=$_POST['Product'];
    print_r(json_encode($ProductID));
}

我遇到的问题是当我发送多个值时,例如下表:

ProductID      SKU
103              WH004BI
137              VO007BI

我总是得到这个结果:

{"id":{"ProductID":"137","SKU":"VO007BI"}}

当我实际上想要得到这样的结果时:

{"id":[{"ProductID":"103","SKU":"WH004BI"},{"ProductID":"137","SKU":"VO007BI"}]}

1 个答案:

答案 0 :(得分:2)

您将要执行以下操作:

<form id="form1" name="form1" method="POST" action="../WSweb/Factura.php">
    <table width="561" height="79" border="1">
        <tr>
            <td width="30%" height="32">ProductID</td>
            <td width="30%" height="32">SKU</td>
        </tr>
        <?php $i = 0; ?>
        <?php while ($row_test1 = mysqli_fetch_assoc($test1) { ?>
            <tr>
                <td>
                    <?php echo $row_test1['ProductID']; ?>
                    <input
                        type="hidden"
                        name="Product[id][<?= $i; ?>][ProductID]"
                        value="<?php echo $row_test1['ProductID']; ?>"
                    />
                </td>
                <td>
                    <?php echo $row_test1['SKU']; ?>
                    <input
                        type="hidden"
                        name="Product[id][<?= $i; ?>][SKU]"
                        value="<?php echo $row_test1['SKU']; ?>"
                    />
                </td>
            </tr>
        <?php $i++; ?>
        <?php } ?>
    </table>

    <input type="submit" value="Update" name="Facturar">
</form>

请注意,我在循环的开头放置了$i = 0,在循环的结尾放置了$i++

此外,我将名称更改为以下名称:

name="Product[id][<?= $i; ?>][SKU]"

这将防止您在注释部分遇到有关格式错误的数组的问题。