2012-05-05 7 views
1

私はMVC SenchaTouchプロジェクトを作成しました。 ユーザーがユーザー名とパスワードを入力してWebサービスに送信するサンプルアプリケーションを作成しました。MVCベースのSencha Touchプロジェクトに 'Controller'クラスを追加する

usernameとpasswordフィールドは「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

、あなたのボタンの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は、データベースとの接続を作成し、その中に値を入力するサーバー側のコード(ちょうど例えば)となります。

+0

1.)私は 'handler:function(){ this.up(contactform).submit();を取り除かなければなりません。 } '' contactView.js'のコード行? 2.) 'MyApp.controller.Main'はコントローラクラスの名前ですか? (私のコントローラクラスは 'myController.js'と呼ばれます)? – user1315906

+0

1)コントローラーファイルからWebサービスコードを呼び出す必要があるので、ビューからそのハンドラー関数を安全に取り除くことができます。 2) 'Main.js'は私のコントローラーファイルの名前です。あなたのコードの '' myController.js''に変更してください。 FYI、 'MyApp'は私のアプリケーションに渡したサンプル名です –

+0

コメント' // Webサービスコードはここに入ります..'の前に 'alert( 'come here');行が実行されませんでした。すべての手がかりは? – user1315906

関連する問題