javascript - 如何使用 foreach 循环进行 json_decode?
问题描述
我正在尝试使用 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);
}
}
推荐阅读
- ios - SpriteKit:使用 SKShapeNode UIBezierPath 圆角的方形到圆形动画
- python-3.6 - Python3:从 json 打印特定值
- go - 去 httputil.ReverseProxy 不覆盖主机头
- php - Laravel 队列监听器超时
- r - 可格式化对象的粗体行名称
- python - 在 Python 3 中,单字节 (\xd0) 打印为两个字节的序列 (\xc3\x90)
- google-chrome - Windows 10 中的 chrome kiosk 模式,关闭 chrome 的正确方法
- php - 尝试在两个不同的表中输入数据时mysqli查询重复
- webrtc - 仅使用 STUN 服务器检测是否在对称 nat 后面
- go - 如何在 golang 中为我的测试用例正确创建模拟 http.request?