Sencha Touch 2将值发送到Web服务 - BEGINNER

时间:2012-04-25 17:14:42

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

我正在关注senchaTouch教程。我有一个名为HelloWorld.php的Web服务,位于URL http://mydomainTest.com/Proj/HelloWorld.php中。它需要3个值,nameemaildescription

网络服务使用POST方法。

我的代码如下;我想知道的是,我没有指定键的值(POST值键)以及Web服务如何知道,为键保存的内容(name,email, description

创建native iPhone apps时,我会说setPostValue: forKey:(在ASIHttpRequest中),我需要知道的是如何为Sencha中传递的值设置密钥。我在下面附上了我的代码,请看看并帮助我。

Ext.define('GS.view.Contacts', {
    extend:'Ext.form.Panel', 
    xtype:'contactform',

        config:{
            title:'Contact',
            iconCls:'user',
            url:'http://mydomainTest.com/Proj/HelloWorld.php',

            items:[
                {
                    xtype:'fieldset',
                    title: 'Contact Us',
                    instructions: '(email is not required)',

                    items: [
                        {
                            xtype:'textfield',
                            name: 'name',
                            label:'Name'
                        },
                        {
                            xtype:'emailfield',
                            name:'email',
                            label:'Email'
                        },
                        {
                            xtype:'textareafield',
                            name:'message',
                            label:'Message'
                        }
                    ]
                },
                {
                items:[
                    {
                        xtype:'button',
                        text: 'Submit',
                        ui:'confirm',
                        handler: function(){
                            this.up('contactform').submit();
                        }
                    }
                ]
            }
            ]
        }





} );

1 个答案:

答案 0 :(得分:1)

按照以下步骤操作: -

  • 使用var values = Ext.getCmp('contactForm').getValues()获取所有表单值,其中contactForm是此formpanel的id
  • 制作Ext.Ajax request并将params属性传递给values
  • 使用成功处理程序验证请求是否成功。在控制台日志中打印响应文本

试试这个

 Ext.define('GS.view.Contacts', {
    extend:'Ext.form.Panel', 
    xtype:'contactform',
    id:'contactForm',
    config:{
            title:'Contact',
            iconCls:'user',
            items:[
                {
                    xtype:'fieldset',
                    title: 'Contact Us',
                    instructions: '(email is not required)',

                    items: [
                        {
                            xtype:'textfield',
                            name: 'name',
                            label:'Name'
                        },
                        {
                            xtype:'emailfield',
                            name:'email',
                            label:'Email'
                        },
                        {
                            xtype:'textareafield',
                            name:'message',
                            label:'Message'
                        }
                    ]
                },
                {
                items:[
                    {
                        xtype:'button',
                        text: 'Submit',
                        ui:'confirm',
                        handler: function(){
                          var values = Ext.getCmp('contactForm').getValues();
                          // prints the values filled in the form 
                          // text fields of name, email and message.     
                          console.log(values.name+","+values.email+","+values.message);                          


                          Ext.Ajax.request({
                            url: 'http://mydomainTest.com/Proj/HelloWorld.php',
                            params : values,
                            success: function(response){
                                var text = response.responseText;
                                Ext.Msg.alert('Success', text); 
                            }
                           });
                        }
                    }
                ]
            }
            ]
        }
  } );