jQuery Tagit-如何将类型化的标签传递回PHP - php

我正在使用以下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 ='';
用于(变量i中的变量)
s + = tags [i] .label +“:” + tags [i] .value +“ \ r \ n”;
警报;

$ .post('/ course / ask-question',{问题:question_val,question_title:question_title,标签:tags},函数(数据){
if(data.success ==“ ok”)
{
$(“ div#wall”)。prepend(data.question);
}
},“ json”);

});

因此,在此函数中,我可以获取标签var tags = $(“#demo3”)。tagit(“ tags”);然后遍历它们并为每个标签打印标签和值。

现在,当我尝试通过$ .post将其传递到我的PHP控制器时-它不起作用-我的意思是如果我在调用ask-question函数时删除了data tags:tags,那么它可以正常工作-但是当我添加它时- nothin好像没有调用该函数一样发生。

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

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

未捕获的TypeError:非法调用jquery-1.6.4.min.js:4
e jquery-1.6.4.min.js:4
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
bJquery-1.6.4.min.js:2
(匿名函数)jquery-1.6.4.min.js:2
e.extend.each jquery-1.6.4.min.js:2
bJquery-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。(匿名函数)jquery-1.6.4.min.js:4
(匿名函数)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

感谢你的帮助
谢谢

参考方案

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

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

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

2-(建议量较少)更改js文件,以始终将'[]'附加到fileName:

更改每个:

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

对于:

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

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery-找不到Ajax网址 - php

好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

jQuery自动完成ui与json问题 - php

我正在尝试使jquery自动完成ui正常工作,但没有成功。没有找到匹配的列表。我收到错误“ TypeError:this.source不是函数”到目前为止,我有一个输入字段<input type="text" id="searchbar" name="title" placeholder=&#…

使用jQuery将值增加到attr - php

我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…