2012-03-31 9 views
0

ich mein eigenes Widget mit Dojo bauen, wie hier diskutiert: Custom WidgetBeitrag Json-Daten von meinem eigenen Dojo-Widget

Nun, ich mag die Daten über ein bestimmtes Ereignis mit dem folgenden Code schreiben:

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

ich erwartete etwas wie dies in meinem xhr.post content: dojo.toJson(this)

Wie kann ich die Daten im jSON-Format an den Server gesendet? Danke!

Edit: hinzugefügt HTML-Template

<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> 

Die Daten korrekt in dem HTML-Code und die Post kommt zu dem Server, aber ohne die Daten.

+0

korrigierte ich meine 'Daten-Dojo-Attach-Point' – myborobudur

Antwort

1

Verwenden Sie postData in Ihren xhrArgs.

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

mit postdata würde ich das gleiche Objekt neu erstellen, mit dem ich mein Widget geladen. Weißt du warum das 'form:" answerForm "' nicht funktioniert? Die Daten sind dort – myborobudur

+1

Der Fokus meiner Antwort war möglicherweise falsch. Ihr Problem besteht darin, dass die Daten Ihres Widgets bei der Veröffentlichung nicht in den Post-Parametern enthalten sind. Hat Ihr benutzerdefiniertes Widget ein HTML-Eingabefeld? Das Formular wird nach HTML-Eingabefeldern für die Daten gesucht. –

+0

Ich habe die HTML-Vorlage hinzugefügt (siehe oben). Ja, es gibt keine Daten in der Post – myborobudur

Verwandte Themen