2

次の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";
        アラート;

            $ .post('/ course / ask-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コントローラーに渡そうとすると(機能しません)、ask-question関数を呼び出すときにデータtags:tagsを削除すると、正常に機能しますが、追加すると機能します- nothinは、関数が呼び出されていないかのように発生します。

このタグオブジェクトをPHPに渡す特定の方法はありますか?

Chrome開発ツールで編集-データにtags:tagsを保持したままフォームを送信すると、次のエラーが発生します

Uncaught TypeError:不正な呼び出し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
(無名関数)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。(無名関数)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

あなたの助けに感謝しますありがとう

4

2 に答える 2

0

使用しているプラ​​グインのドキュメントから、tags配列になります。配列を使用する必要がある場合は、変更tags: tags'tags[]':tagsて機能するかどうかを確認してください。

于 2013-02-14T14:26:39.453 に答える