在我的基于MVC的Sencha Touch项目中添加“Controller”类

时间:2012-05-05 16:37:28

标签: cordova sencha-touch extjs sencha-touch-2

我创建了一个MVC SenchaTouch项目。 我创建了一个示例应用程序,用户将输入用户名和密码并将其发送到Web服务。

用户名和密码字段假设位于“VIEW”中,“将其发送到Web服务”功能应位于“CONTROLLER”中。

在我的程序中,发送到Web服务部分也在'VIEW'中,所以有人可以帮我编辑我的代码,以便我可以在'发送到Web服务'功能' CONTROLLER'

这是代码

Ext.define('TU.view.Contact',{
           extend:'Ext.form.Panel',
           xtype:'contactform',

           config: {

           title:'Contact',
           iconCls:'user',

           url:'http://somesite.com/contact.php',
           items: [
           {
                   xtype:'fieldset',
                   title:'User Login',

                   items:[
                          {
                          xtype:'textfield',
                          name:'name',
                          label:'Name'
                          },
                          {
                          xtype:'passwordfield',
                          name:'password',
                          label:'Password'
                          }
                          ]
           },
           {
                   xtype:'button',
                   text:'Send',
                   ui:'confirm',
                   padding:5,
                   handler:function(){
                   this.up(contactform).submit();

                   }
           }
           ]



           }




           });

1 个答案:

答案 0 :(得分:1)

首先,为您的按钮设置id属性。

 xtype:'button',
 id:'submitBtn',
 text:'Send'
 .....
 .....

在控制器类中,

Ext.define('MyApp.controller.Main', {
    extend: 'Ext.app.Controller',

    config: {
        refs : {
            submitBtn: '#submitBtn'
        },

        control : {
            submitBtn: {
                tap: 'submitData'
            }
        },
    },

    submitData: function() {
             var form = Ext.getCmp('form-id');

             // Get username and password fields ...
             var formvalues = form.getValues();

             // Web Service code goes here ..
             Ext.Ajax.request({
                 params: formvalues,                     
                 url:'http://_servername_.com/app/insert.php'

                 success : function() {
                       Ext.Msg.alert('Success','Username and password successfully entered');
                 }

                 failure : function() {
                       Ext.Msg.alert('Failure','Error while adding data');
                 }
             });        
    }
});

注意: insert.php将是服务器端代码(仅此而已),它将与您的数据库建立连接并在其中输入值。