gpt4 book ai didi

php - Jquery Tagit - 如何将键入的标签传递回 PHP

转载 作者:行者123 更新时间:2023-12-01 03:44:42 26 4
gpt4 key购买 nike

我正在使用以下 tagit 插件 http://webspirited.com/tagit/

这是我尝试测试此插件的 html 页面的代码片段 - 用户在其中键入标签

<input class="text_field" type="text" size="72" id="question_title"/>
<textarea id="question"></textarea>

<ul id="demo3" class="tagit">
<li class="tagit-choice">apple orange<a class="tagit-close">x</a></li>
<li class="tagit-new"><input class="tagit-input ui-autocomplete-input" type="text" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></li>
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 0px; left: 0px; display: none;"></ul></ul>

<input id="question_submit" type="submit" value="Ask Question"/>

现在,当用户单击“提问”按钮时 - 会发生以下 ajax 调用

$("#question_submit").live('click',function(e) {                    e.preventDefault();             var question_val = $("#question").val();        var question_title = $("#question_title").val();        var tags = $("#demo3").tagit("tags");        var s ='';        for (var i in tags)            s += tags[i].label + " : " + tags[i].value + "\r\n";        alert(s);            $.post('/course/ask-question', {question: question_val,question_title: question_title,tags:tags}, function(data) {                if(data.success=="ok")                {                    $("div#wall").prepend(data.question);                }                               },"json");    });

所以在这个函数中我能够获取标签

var tags = $("#demo3").tagit("tags");
并循环遍历它们并打印每个标签的标签和值。

现在,当我尝试通过 $.post 将它传递到我的 PHP Controller 时 - 它不起作用 - 我的意思是如果我在调用提问函数时删除数据标签:标签,它工作正常 - 但是当我添加它 - 就好像该函数没有被调用一样什么也不会发生。

是否有特定的方法将此标记对象传递给 PHP?

编辑在 Chrome 开发者工具中 - 当我在数据中保留标签时提交表单时 - 我收到以下错误

Uncaught TypeError: Illegal invocation jquery-1.6.4.min.js:4e jquery-1.6.4.min.js:4bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2(anonymous function) jquery-1.6.4.min.js:2e.extend.each jquery-1.6.4.min.js:2bY jquery-1.6.4.min.js:2f.extend.param jquery-1.6.4.min.js:4f.extend.ajax jquery-1.6.4.min.js:4f.(anonymous function) jquery-1.6.4.min.js:4(anonymous function) course-feed.js:51L jquery-1.6.4.min.js:2f.event.handle jquery-1.6.4.min.js:3i.handle.k

感谢您的帮助谢谢

最佳答案

有两种简单的方法可以解决此问题:

1- 将选项“fieldName”设置为“tags[]”

$("#myTags").tagit({
fieldName: 'tags[]'
});

2-(较少推荐)更改 js 文件以始终将“[]”附加到文件名:

更改每个:

name="' + this.options.fieldName + '"

对于:

name="' + this.options.fieldName + '[]"

关于php - Jquery Tagit - 如何将键入的标签传递回 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876862/

26 4 0