2012-03-31 3 views
0

、ここで説明したように、私は道場で自分のウィジェットを構築する:Custom WidgetポストJSONデータ

は今、私は次のコードで特定のイベントにデータを投稿したい:

xhr.post({ 
    handleAs: "json", 
    form: "answerForm", 
    timeout: 15000, 
    load: lang.hitch(this, "_onSubmitted", button), 
    error: lang.hitch(this, "_onSubmitError", button) 
}); 

は私xhr.postにこのような何かを期待content: dojo.toJson(this)

どのように私は、サーバーにJSON形式でデータを送ったことができますか? ありがとう!

編集:追加のHTMLテンプレート

<form id="answerForm" action="${url}"> 
    <div data-dojo-attach-point="selectionAnswerWidget" data-dojo-type="dijit.layout.ContentPane" 
     data-dojo-props="region: 'bottom'"> 

     <div data-dojo-type="dojo.store.Memory" data-dojo-id="answerStore" 
      data-dojo-props="data: [{id: 'YES', name: 'yes'}, {id: 'NO', name: 'no'}, {id: 'UNANSWERED', name: 'unanswered'}]"></div> 
     <input data-dojo-type="dijit.form.FilteringSelect" value="${answer}" 
      data-dojo-props="store:answerStore, searchAttr:'name'" data-dojo-attach-point="answerSelection" /> 
    </div> 

    <div data-dojo-attach-point="textAreaAnswerWidget" data-dojo-type="dijit.layout.ContentPane" 
     data-dojo-props="region: 'top'"> 

     <textarea data-dojo-attach-point="commentNode" rows="5" cols="50" data-dojo-type="dijit.form.SimpleTextarea" 
      data-dojo-props="selectOnClick:true">${comment}</textarea> 
    </div> 

データは、HTMLで正しく、ポストは、サーバーではなく、データなしで到着します。

+0

私は私が私のウィジェットをロードしたと同じオブジェクトを再作成する必要がありますPOSTDATAと私の 'データ・道場アタッチ-point' – myborobudur

答えて

1

あなたのxhrArgsにpostDataを使用してください。

xhr.post({ 
handleAs: "json", 
postData: dojo.toJson(obj), 
timeout: 15000, 
load: lang.hitch(this, "_onSubmitted", button), 
error: lang.hitch(this, "_onSubmitError", button) 
}); 
+0

を修正しました。 'form:" answerForm "がうまくいかない理由を知っていますか?データがあります – myborobudur

+1

私の答えの焦点が間違っている可能性があります。あなたの問題は、あなたがポストすると、あなたのウィジェットからのデータがポストパラメータにないということですか?あなたのカスタムウィジェットはhtml入力フィールドを持っていますか?フォームを投稿すると、データのhtml入力フィールドが検索されます。 –

+0

私はhtmlテンプレートを追加しました(上記参照)。はい、投稿にはデータがありません – myborobudur

関連する問題