设计思路
文件和,标签的关系,多对多的关系。
需要一个标签表,和,文章标签中间表。
文章和,标签的关系,多对多的关系。
一个标签对应多篇文章,一篇文章对应多个标签 。
标签,增删改查,可以在后台管理。
这个文章标签中间表,是如果1篇文章有几个标签,就有几条数据,只是对应同一个文章id
参考网址
http://www.17sucai.com/pins/29482.html
我是 这样 实现的
// 标签库 的展示
<div class="clear"></div>
<!-- <div class="af-outer af-required"> -->
<div class="wrap">
<div class="label-selected">
<a href="javascript:;" class="layui-btn layui-btn-sm show-labelitem" style="float: right; margin: 4px; display: block;line-height: 30px;">展开标签库 </a>
<a href="javascript:;" class="layui-btn layui-btn-sm hide-labelitem" style="float: right; margin: 4px; display: none;line-height: 30px;">收起标签库 </a>
<!-- 在这获取的值 用户点击的 标签 id -->
<input type="hidden" name="biaoqian_id">
</div>
<div class="layui-col-md12" id="labelItem">
<!-- 标签库 -->
<div class="label-item">
<a href="javascript:;" class="replacelable" style="position: absolute;right:1rem;bottom:.75rem;color: #1994dc" onselectstart="return false">换一批</a>
{foreach $biaoqian as $v}
<li class="biaoqian" data="{$v['id']}"><span>{$v['biaoqian_name']}</span></li>
{/foreach}
</div>
</div>
</div>
// 表单 提交按钮
<div class="af-outer af-required">
<div class="af-inner">
<input type="submit" id="button" name="button" class="btn btn-welcome btn-large" value="发布" />
</div>
</div>
js
<script type="text/javascript">
$(function(){
// 要改成表单提交的时候获取
$("#button").click(function(){
// 这样就可以得到标签id,传递给 input框 并跟随表单 一起提交到后台
console.log($("input[name='biaoqian_id']").val());
})
})
</script>
控制器中
获取到用户点击的标签 id 只要 存进 标签关联中间表 就可以了
注意,多个标签id 的时候,要 遍历循环添加
代码如下
// 如果标签为空,不插入标签表
if($data['biaoqian_id'])
{
// $arr 最后一个下标是空的
$arr = explode(',',$data['biaoqian_id']);
$result = array_pop($arr); // 这是那个空的下标,去掉
foreach($arr as $v)
{
$biaoqian['biaoqian_id'] = $v;
$biaoqian['art_id'] = $art_id;
$biao = DB::name('biaoqian_link')->insert($biaoqian);
}
}