无法从FORM发布多数组来处理PHP

时间:2020-07-23 04:27:03

标签: php arrays

当我使用二维数组创建表单输入时,但是无法在进程POST中读取

<form name=\"FormAdd\" id=\"FormAdd\" role=\"form\" method=\"post\"  
                action=\"?page=".$page."&language=".$language."&action=adddata\" enctype=\"multipart/form-data\">
                <input type=\"text\" name=\"am[0][0]\" value=\"23\">
                <button type=\"submit\" class=\"btn btn-primary\"><i class=\"fa fa-floppy-o\" aria-hidden=\"true\"></i> ".SAVE."</button>
            </form>


print_r($am);

结果 数组([0] =>)

应该结果 数组([0] =>数组([0] => 23))

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则希望为字段am发布多个输入值。

下面的表单将在am字段中发布多个值。

<form name="FormAdd" id="FormAdd" role="form" method="post"  
action="?query=WHAT_EVER_YOUR_QUERY_STRING" enctype="multipart/form-data">
    <input type="text" name="am[]" value="23">
    <input type="text" name="am[]" value="24">
    <input type="text" name="am[]" value="25">
    <input type="text" name="am[]" value="26">
    <input type="text" name="am[]" value="27">
    <button type="submit" class="btn btn-primary"><i class="fa fa-floppy-o" aria-hidden="true"></i> ".SAVE."</button>
</form>
<?php
if ($_POST['am']) {
    print_r($_POST['am']);
}

输出

Array
(
    [0] => 23
    [1] => 24
    [2] => 25
    [3] => 26
    [4] => 27
)
  1. 在HTML表单的字段名称中注意[]符号。
  2. 请注意,在访问PHP文件中的POST值时不需要[]

类似地,如果您使用类似以下的形式:

    <input type="text" name="am[0][]" value="23">
    <input type="text" name="am[0][]" value="24">
    <input type="text" name="am[0][]" value="25">
    <input type="text" name="am[0][]" value="26">
    <input type="text" name="am[0][]" value="27">

输出为

Array
(
    [0] => Array
        (
            [0] => 23
            [1] => 24
            [2] => 25
            [3] => 26
            [4] => 27
        )

)

答案 1 :(得分:0)

问题是您在PHP中阅读不正确,应使用:

print_r($_POST['am']);

代替

print_r($am);

应该可以。

Live example.