簡體   English   中英

PHP,發送帶有2個字段的數組作為輸入,通過Form隱藏

[英]PHP, Send Array with 2 fields as input hidden through Form

我有這個數組$ 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

謝謝你,費利佩

回答具體問題; 您可以循環並添加隱藏的輸入:

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'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM