javascript - 如何使用 foreach 循环进行 json_decode?

标签 javascript php jquery json

我正在尝试使用 foreach 循环解析表单提交的隐藏输入文本。

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

使用以下函数获取它

$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="[" ,而其余部分将被忽略。

此外,由于名称后面有 [],因此 $_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);
    }
}

关于javascript - 如何使用 foreach 循环进行 json_decode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58039790/

相关文章:

javascript - 获取选择框的 html 并附加到另一个 div 中

javascript - 通过单击切换背景颜色更改

javascript - 我应该如何拆分我的 js 文件以便于维护?

javascript - 使用从函数返回的字符串选择预定义变量

javascript - 对象作为 React 子 react 错误无效?

javascript - 在 dc.js 饼图中旋转饼标签

php - 在不同服务器上安装 Apache、PHP 和 MySQL

javascript - 如何使用 jQuery 验证插件验证美国邮政编码

php - 使用 Composer 自动加载找不到类

php - 根据 PHP 变量设置表单下拉列表