PHP,发送数组,其中2个字段作为输入隐藏在Form中

问题描述 投票:1回答:1

我有这个数组$ newArray,它是在POST表单内部构建的,所以我想把整个数组作为隐藏的INPUT发送:

Array
(
    [0] => Array
        (
            [day1to7] => 1
            [timeHHMM] => 10:00
        )

    [1] => Array
        (
            [day1to7] => 1
            [timeHHMM] => 11:00
        )

    [2] => Array
        (
            [day1to7] => 1
            [timeHHMM] => 12:00
        )

    [3] => Array
        (
            [day1to7] => 5
            [timeHHMM] => 14:00
        )

)

能帮我知道如何在INPUT中写出来吗?

echo '<input type="hidden" name="newArraySend" value="'. $newArray[day1to7]['timeHHMM'] . '">';  -> this is my wrong try

另外,请告诉我怎样才能收到它?

$newArrayReceived = $_POST['newArraySend']; ->this also is wrong I think

菲利普,非常感谢你

php arrays
1个回答
2
投票

回答具体问题;你可以循环并添加隐藏的输入:

foreach($newArray as $key => $val) {
    echo '<input type="hidden" name="newArraySend['.$key.'][day1to7]" value="'.$val['day1to7'].'">';
    echo '<input type="hidden" name="newArraySend['.$key.'][timeHHMM]" value="'.$val['timeHHMM'].'">';
}

接收PHP应该像使用原始数组一样使用$_POST['newArraySend']

或者只编码整个数组:

$val = htmlentities(json_encode($newArray));
echo '<input type="hidden" name="newArraySend" value="'.$val.'">';

然后在接收端解码:

$result = json_decode(html_entity_decode($_POST['newArraySend']), true);

但实际上这可能会更好地处理会话:

session_start();
$_SESSION['newArray'] = $newArray;

然后在接收端:

session_start();
$result = $_SESSION['newArray'];
© www.soinside.com 2019 - 2024. All rights reserved.