【发布时间】:2020-01-15 14:02:28
【问题描述】:
我正在开发一个用户可以填写他/她的个人资料的项目。因此,在存储用户的社交媒体链接时,我有一个 json 文件,其中包含名称、favicon、url 等所有引用。所以我可以使用 json_decode foreach 它并显示一个文本字段。但是如何将数据库中输入的所有链接存储为 json 格式并使用完整的 URL 检索它们。
这是json文件
{
"facebook": {
"icon": "fab fa-facebook",
"title": "Facebook",
"url": "https://facebook.com/%s"
},
"instagram": {
"icon": "fab fa-instagram",
"title": "Instagram",
"url": "https://instagram.com/%s"
}
}
这就是我的显示方式
<?php foreach($available_buttons as $key => $button): ?>
<div class="col-md-4 mb-3">
<div class="form-group">
<label ><i class="<?= $button->icon ?> mr-2"></i> <?= $button->title ?></label>
<input type="text" name="buttons[<?= $key ?>]" class="form-control" />
</div>
</div
<?php endforeach; ?>
我正在使用 json_encode 处理它并将其提交给 db
$buttons = json_encode(clean_array($_POST['buttons']));
在干净的数组函数中传递数据
function clean_array(Array $data) {
foreach($data as $key => $value) {
$data[$key] = filter_var($data, FILTER_SANITIZE_STRING);
}
return $data;
}
但是当我尝试提交时,我在数据库中得到了错误,例如“{'instagram': 'false', 'instagram': 'false'}”
我该怎么做?
【问题讨论】:
-
帖子名称不正确 "buttons[= $key ?>]" 。您正在传递具有动态值的名称,但您正在保存与该名称不匹配的结果 "$_POST['buttons']"
-
不使用 echo for $key,您可以简单地用等号包裹它来回显它 = $key ?>,这不是问题
-
我不是在说回声功能。讲述名称中的动态值
-
问题已编辑
-
请在提交表单后检查您的 $_POST['buttons'] 值,并显示给我们