簡體   English   中英

如何使用 foreach 循環進行 json_decode?

[英]How to json_decode using foreach loop?

我正在嘗試使用 foreach 循環解析表單提交的隱藏輸入文本。

<input type="hidden" id="snippet_tags" name="snippet_tags[]" value="["88","92","96","98"]">

使用以下 function 獲取此信息

$snippet_tags = json_decode($_POST['snippet_tags'], true);

並使用 foreach 循環解析值

foreach ($snippet_tags as $selectedOption){

                        $ins_snippet_tag_data = array(
                            'snippet_id' => $insertDataReturnLastId,
                            'tag_id' => $selectedOption,
                            'priority' => 1,

                        );

                 $this->Constant_model->insertDataReturnLastId('snippets_tags', $ins_snippet_tag_data);

                }

這里的問題是 tag_id 的值沒有保存在數據庫中

您不能使用相同的引號來分隔其中的值和字符串。 您需要在值周圍使用單引號。

<input type="hidden" id="snippet_tags" name="snippet_tags[]" value='["88","92","96","98"]'>

你寫它的方式,它被視為你寫了value="["並且 rest 被忽略。

此外,由於名稱后面有[]$_POST['snippet_tags']將是一個數組,因此您需要循環它。

foreach ($_POST['snippet_tags'] as $json) {
    $snippet_tags = json_decode($json, true);
    foreach ($snippet_tags as $selectedOption){
        $ins_snippet_tag_data = array(
            'snippet_id' => $insertDataReturnLastId,
            'tag_id' => $selectedOption,
            'priority' => 1,
        );
        $this->Constant_model->insertDataReturnLastId('snippets_tags', $ins_snippet_tag_data);
    }
}

暫無
暫無

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

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