Jquery标记-如何将类型化标记传递回PHP

Jquery标记-如何将类型化标记传递回PHP,php,jquery,jquery-plugins,jquery-post,tag-it,Php,Jquery,Jquery Plugins,Jquery Post,Tag It,我正在使用以下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 ora

我正在使用以下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"); }); $(“#问题_提交”).live('click',函数(e){ e、 预防默认值(); var question_val=$(“#question”).val(); var question_title=$(“#question_title”).val(); 变量标记=$(“#demo3”).tagit(“标记”); var s=''; for(标签中的变量i) s+=标记[i]。标签+“:”+标记[i]。值+“\r\n”; 警报; $.post(“/course/ask question”,{question:question\u val,question\u title:question\u title,tags:tags},函数(数据){ if(data.success==“ok”) { $(“div#wall”).prepend(data.question); } }“json”); }); 所以在这个函数中,我可以得到标签var tags=$(“#demo3”).tagit(“标签”);并循环遍历它们,打印每个标记的标签和值

    var tags = $("#demo3").tagit("tags"); 现在,当我试图通过$.post将其传递给我的PHP控制器时,它不起作用——我的意思是,如果我删除数据标记:调用ask question函数时,标记可以正常工作——但是当我添加它时——如果没有调用该函数,则不会发生任何情况

    是否有一种特殊的方式将这个标记对象传递给PHP

    编辑 在ChromeDeveloperTools中——当我提交表单并保留标签时:数据中的标签——我得到以下错误

    Uncaught TypeError: Illegal invocation jquery-1.6.4.min.js:4 e jquery-1.6.4.min.js:4 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 (anonymous function) jquery-1.6.4.min.js:2 e.extend.each jquery-1.6.4.min.js:2 bY jquery-1.6.4.min.js:2 f.extend.param jquery-1.6.4.min.js:4 f.extend.ajax jquery-1.6.4.min.js:4 f.(anonymous function) jquery-1.6.4.min.js:4 (anonymous function) course-feed.js:51 L jquery-1.6.4.min.js:2 f.event.handle jquery-1.6.4.min.js:3 i.handle.k 未捕获类型错误:非法调用jquery-1.6.4.min.js:4 e jquery-1.6.4.min.js:4 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 (匿名函数)jquery-1.6.4.min.js:2 e、 extend.each jquery-1.6.4.min.js:2 根据jquery-1.6.4.min.js:2 f、 extend.param jquery-1.6.4.min.js:4 f、 extend.ajaxjquery-1.6.4.min.js:4 f、 (匿名函数)jquery-1.6.4.min.js:4 (匿名函数)课程提要.js:51 L jquery-1.6.4.min.js:2 f、 event.handle jquery-1.6.4.min.js:3 i、 处理 谢谢你的帮助
    感谢您所使用插件的文档,
    标签将是一个数组。如果需要使用数组,请尝试将
    tags:tags
    更改为
    'tags[]:tags
    查看它是否有效?

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

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

    $("#myTags").tagit({
        fieldName: 'tags[]'
    });
    
    2-(不太推荐)将js文件更改为始终将“[]”附加到文件名:

    更改每个:

    name="' + this.options.fieldName + '"
    
    用于:


    谢谢Jason-我试过了-没什么区别-谢谢如果你使用Chrome,你可以打开开发者工具查看帖子返回的内容。您可以在此处发布它返回的内容,以便我们可以查看?对于firefox,您应该能够使用firebug执行相同的操作。:-)谢谢Jason-我已经编辑了这个问题,以显示ChromeIs中的错误是否可以使用序列链而不是数组作为标记?
    name="' + this.options.fieldName + '[]"