如何获取表单值并使用sencha touch在db中插入该值

时间:2013-01-18 10:38:47

标签: sencha-touch-2

我想将登录表单详细信息存储在数据库中。因此,我编写了以下代码。

在我的视图代码中

Ext.define('SampleForm.view.LoginForm', {
    extend: 'Ext.form.Panel',
    //id:'loginform',
    requires:[
            'Ext.field.Email',
            'Ext.field.Password'
    ],
    config: {
        fullscreen: true,
        layout:{
            type:'vbox'
        },
        items: [
            {
                xtype: 'fieldset',
                title: 'Login',
        id: 'loginform',
                items: [
                    {
                        xtype:'textfield',
                        label:'Name',
                        name:'name'
                    },
                    {
                        xtype: 'emailfield',
                        name: 'email',
                        label: 'Email'
                    },
                    {
                        xtype: 'passwordfield',
                        name: 'password',
                        label: 'Password'
                    }
                ]
            },
            {
                xtype: 'button',
                width: '30%',
                text: 'Login',
                ui: 'confirm',
        action:'btnSubmitLogin'
            }
        ]
    }
});

在控制器中

Ext.define("SampleForm.controller.LoginForm", {
    extend: "Ext.app.Controller",

    config: {
        view: 'SampleForm.view.LoginForm',
        refs: [
        {
            loginForm: '#loginform',
            Selector: '#loginform'
        }
        ],
        control: {
            'button[action=btnSubmitLogin]': {
                tap: "onSubmitLogin"
            }
        }
    },
    onSubmitLogin: function () {

    alert('Form Submitted successfully');
    console.log("test");
    var values = this.getloginform();
    /* Ext.Ajax.request({
                      url: 'http://www.servername.com/login.php',
                      params: values,

                      success: function(response){
                          var text = response.responseText;
                          Ext.Msg.alert('Success', text);
                     }

                     failure : function(response) {
                           Ext.Msg.alert('Error','Error while submitting the form');
                           console.log(response.responseText);
                     }
              });*/
     form.submit({
           url:"http://localhost/sencha2011/form/login.php"
     });
    },
    launch: function () {
        this.callParent();
        console.log("LoginForm launch");
    },
    init: function () {
        this.callParent();
        console.log("LoginForm init");
    }
});

当我单击提交按钮时,警报消息即将到来,但值未存储在数据库中。在控制台中我收到此错误,未捕获TypeError:对象[对象对象]没有方法'getloginform'。

任何人都可以帮我解决如何在数据库中插入值。

1 个答案:

答案 0 :(得分:1)

Javascript 区分大小写。来自Sencha Touch docs:

  

这些getter函数是根据您定义的引用生成的   始终遵循相同的格式 - 'get'后跟大写的ref   名。

要将refter方法用于ref loginForm,并使用以下方法获取表单值:

var values = this.getLoginForm().getValues();