Clear Up
SharpKit Reference

DirectSubmit Class

Provides Ext.direct support for submitting form data.

This example illustrates usage of Ext.direct.Direct to submit a form through Ext.Direct.

  
var myFormPanel = new Ext.form.Panel({
            // configs for FormPanel
            title: 'Basic Information',
            renderTo: document.body,
            width: 300, height: 160,
            padding: 10,
            buttons:[{
            text: 'Submit',
            handler: function(){
            myFormPanel.getForm().submit({
            params: {
            foo: 'bar',
            uid: 34
            }
            });
            }
            }],
            // configs apply to child items
            defaults: {anchor: '100%'},
            defaultType: 'textfield',
            items: [{
            fieldLabel: 'Name',
            name: 'name'
            },{
            fieldLabel: 'Email',
            name: 'email'
            },{
            fieldLabel: 'Company',
            name: 'company'
            }],
            // configs for BasicForm
            api: {
            // The server-side method to call for load() requests
            load: Profile.getBasicInfo,
            // The server-side must mark the submit handler as a 'formHandler'
            submit: Profile.updateBasicInfo
            },
            // specify the order for the passed params
            paramOrder: ['uid', 'foo']
            });
            

The data packet sent to the server will resemble something like:

  
{
            "action":"Profile","method":"updateBasicInfo","type":"rpc","tid":"6",
            "result":{
            "success":true,
            "id":{
            "extAction":"Profile","extMethod":"updateBasicInfo",
            "extType":"rpc","extTID":"6","extUpload":"false",
            "name":"Aaron Conran","email":"aaron@sencha.com","company":"Sencha Inc."
            }
            }
            }
            

The form will process a data packet returned by the server that is similar to the following:

  
// sample success packet (batched requests)
            [
            {
            "action":"Profile","method":"updateBasicInfo","type":"rpc","tid":3,
            "result":{
            "success":true
            }
            }
            ]
            // sample failure packet (one request)
            {
            "action":"Profile","method":"updateBasicInfo","type":"rpc","tid":"6",
            "result":{
            "errors":{
            "email":"already taken"
            },
            "success":false,
            "foo":"bar"
            }
            }
            

Also see the discussion in Ext.form.action.DirectLoad.

Namespace: Ext.form.action

© Copyright 2005-2011 SharpKit. All rights reserved.