我正在使用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']中收到一个数组-当前,您将覆盖之前的输入,这就是为什么您仅收到一项的原因。

然后,您可以遍历数组,并根据需要将其插入数据库中。

10-07 15:01