Extjs 正在将值保存到数据库-逻辑错误

Extjs 正在将值保存到数据库-逻辑错误,extjs,extjs4,extjs-mvc,extjs4.1,Extjs,Extjs4,Extjs Mvc,Extjs4.1,在下面的示例中,当我们单击该按钮时,所有表单数据(包括键值)都将传递到要保存在数据库中的php文件。获取键值是通过var form=this.up('form').getForm()完成的语句 更新3 Ext.define ('Mycomp.model.MyClass',{ extend: 'Ext.data.Model', fields:['textfieldone'] }); ===============================================

在下面的示例中,当我们单击该按钮时,所有表单数据(包括
键值
)都将传递到要保存在数据库中的php文件。获取
键值是通过
var form=this.up('form').getForm()完成的语句

更新3

Ext.define ('Mycomp.model.MyClass',{
    extend: 'Ext.data.Model',

    fields:['textfieldone']

});
========================================================================

更新2

当用户单击按钮时,我会显示一个包含一个文本字段和一个按钮的视图(如下面的代码所示)。用户将输入一些值并单击按钮,用户在文本字段中输入的值应保存在数据库中(《代码》)存储区有指向PHP代码路径的链接

控制器

Ext.define('Mycomp.controller.MyClass',{
    extend: 'Ext.app.Controller',

    stores:['MyClass'],
    models:['MyClass'],
    views:['MyClassView'],
    init: function(){
        this.control({          
            'myclassview button[action=save]': {
                click: this.myMethod
            }
        });         
        },
        myMethod: function(button,record) {
               var win    = button.up('window'),
               form   = win.down('form'),
               record = form.getForm().getRecord(),
               values = form.getForm().getValues();
               console.log (values);
               console.log (record);
               record.getRecord().set(values);         
           win.close();
           this.this.getMyClassStore().sync(); 
    }
});
看法

贮藏

===============================================================================

更新1

 ....  this.buttons = [
                            {
                                text: 'Save',

                                action: 'save'
                            }, ...
贮藏

控制员

this.control({

            'mycalssform button[action=save]': {
                click: this.myMethod
            }
        });


        },

        myMethod: function(button, record) {

               var win    = button.up('window'),
               form   = win.down('form'),
               record = form.getRecord(),
               values = form.getValues();
               console.log (record);
      console.log (values );

           record.set(values);
           win.close();
           this.this.getmyClassStore().sync(); 
FIREBUG OUT>>它说记录未定义。为什么会这样

undefined

Object { textfileldone="hello", textfileldtwo="bever", more...}

record is undefined
[Break On This Error]   

record.set(values);

为了将表单“绑定”到一个记录,您需要创建一个新的模型实例并调用
form.loadRecord()
——只有这样做之后,您才能
form.getRecord()
工作

或者(如果您只使用新记录来形成表单,这将是合适的),您可以在保存时创建一个新的模型记录并设置其值

沿着这些线的东西将创建一个新的模型记录:

var iStore = this.getmyClassStore();
var iModel = iStore.model; 
var iNewRecord = iModel.create();
然后,您可以执行以下操作:

iValues = form.getValues();
iNewRecord.set( iValues );
然后您需要将新记录添加到存储:

iStore.add( iNewRecord )
因此,您的代码应该如下所示:

    myMethod: function(button, record) {

           var win    = button.up('window'),
               form   = win.down('form'), 
               values = form.getValues(),
               store = this.this.getmyClassStore(),
               model = store.model,
               record = model.create();


               record.set( values );
               store.add( record );
               win.close();
               store.sync(); 
    }

为什么这被否决了,即使没有你的模型的一部分的评论也是
textfieldone
textfieldone
是模型的一部分,而且在MySQL数据库中,我将一列命名为
textfieldone
,并且在视图中我有一个名为
textfieldone
的textfieldone。你能发布请求吗(在firebug或chrome开发者工具中显示)?我已经更新了我的问题,并且添加了我的最新代码,现在我收到一个错误,说
记录未定义。
。你能在这里帮助我吗?嗯,我已经定义了一个模型。我已经在上面包含了它(在更新3下)。是否要我将这3行代码添加到该模型类?我的意思是,您的表单没有引用模型记录。您需要在代码的某个地方创建正确的模型记录(商店的模型)然后设置从表单中获取的值。您能解决这个问题吗,或者您需要我复制/粘贴/更改您发布的代码吗?请,您能复制/粘贴代码吗?我整天都有点纠结于此是的,我已经消除了这个错误。但是当我回显$\u POST[textfieldone]时,我传递的记录没有显示出来;将有助于查看模型的定义。此外,firebug/chrome开发工具的请求调试。。。
iValues = form.getValues();
iNewRecord.set( iValues );
iStore.add( iNewRecord )
    myMethod: function(button, record) {

           var win    = button.up('window'),
               form   = win.down('form'), 
               values = form.getValues(),
               store = this.this.getmyClassStore(),
               model = store.model,
               record = model.create();


               record.set( values );
               store.add( record );
               win.close();
               store.sync(); 
    }