我正在使用jquery.webspirited.coms tagit jquery,它在创建标记的意义上正常工作,在前端分离,但是当我发布数据时,它仅将最后一个标记作为值发布到数据库中。
除了要放在标题等中的代码之外,我找不到任何有关如何正确安装插件的文档,这是标题代码。
<script type="text/javascript">
$(function () {
$('#topic').tagit();
$('#topicGetTags').click(function () {
showTags($('#topic').tagit('tags'))
});
$('input[type=submit]').click(function(){
tag = $('#topic').tagit('tags');
console.log(tag);
for (var i in tag)
$('form').append("<input type='hidden' name='tags[]' value='"+tag[i].value+"' >");
});
function showTags(tags) {
console.log(tags);
var string = "Tags (label : value)\r\n";
string += "--------\r\n";
for (var i in tags)
string += tags[i].label + " : " + tags[i].value + "\r\n";
alert(string);
}
});
</script>
输入
<ul id="topic" name="tags[]"></ul>
tagit.js文件本身几乎有500行,因此,这里有一个指向它的链接,而不是在此处复制/粘贴它。
http://webspirited.com/tagit/js/tagit.js
这也是插入代码,以防万一我需要在那看
$tags = isset($_POST['tags']) ? $_POST['tags'] : null;
if (is_array($tags)) {
foreach ($tags as $t) {
// escape the $t before inserting in DB
$sql = "INSERT INTO tags (tags) VALUES('$t')";
}
谢谢你的提示
最佳答案
将隐藏的输入名称更改为name="tag[]"
,您将在PHP脚本中的$_POST['tag']
中收到一个数组-当前,您将覆盖之前的输入,这就是为什么您仅收到一项的原因。
然后,您可以遍历数组,并根据需要将其插入数据库中。