Получаване на формуляра за изпращане при щракване върху бутона за изпращане

Опитвам се да изпратя формуляра, когато се щракне върху бутона, но не беше толкова просто, колкото си мислех, винаги накрая получавам fp.getForm не е функция, въпреки че манипулаторът за изпращане е взето директно от ExtJs doc, някаква следа?

Players.panel.Subscription = function(config) {
    config = config || {};
    Ext.apply(config,{
        border: false
        ,baseCls: 'modx-formpanel'
        ,process: 'mgr/player/getSubscribers'
        ,standardSubmit: true
        ,url: Players.config.connectorUrl
        ,baseParams: { action: 'mgr/player/getSubscribers' }
        ,buttons: [{
                    text: 'Export er'
                    ,formBind: true
                    ,type: 'submit'
                    ,handler: function(){


                            var fp = this.ownerCt.ownerCt,
                                form = fp.getForm();
                            if (form.isValid()) {
                                // check if there are baseParams and if
                                // hiddent items have been added already
                                if (fp.baseParams && !fp.paramsAdded) {
                                    // add hidden items for all baseParams
                                    for (i in fp.baseParams) {
                                        fp.add({
                                            xtype: 'hidden',
                                            name: i,
                                            value: fp.baseParams[i]
                                        });
                                    }
                                    fp.doLayout();
                                    // set a custom flag to prevent re-adding
                                    fp.paramsAdded = true;
                                }
                                form.submit();
                            }

                }
                }]

    });
    Players.panel.Subscription.superclass.constructor.call(this,config);

};

Също така се опитах да заменя базовия клас от modx-formpanel на formpanel и basicform без успех.

Благодаря


person Yehia A.Salam    schedule 15.08.2011    source източник


Отговори (1)


Това е така, защото нямате панел с формуляри. Опитайте тази:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="/bg./ext/resources/css/ext-all.css" />
<script type="text/javascript" src="./ext/bootstrap.js"></script>
</head>
<body>
<script>
Ext.ns('Players.panel');
Ext.onReady(function() {  
  Players.panel.Subscription = Ext.extend(Ext.form.Panel, {
    constructor : function(config) {
      config = Ext.apply({
          border: false
            ,baseCls: 'modx-formpanel'
            ,process: 'mgr/player/getSubscribers'
            ,standardSubmit: true
            ,url: '-'
            ,baseParams: { action: 'mgr/player/getSubscribers' }
            ,buttons: [{
                        text: 'Export er'
                        ,formBind: true
                        ,type: 'submit'
                        ,handler: function(){


                                var fp = this.ownerCt.ownerCt,
                                    form = fp.getForm();
                                if (form.isValid()) {
                                    // check if there are baseParams and if
                                    // hiddent items have been added already
                                    if (fp.baseParams && !fp.paramsAdded) {
                                        // add hidden items for all baseParams
                                        for (i in fp.baseParams) {
                                            fp.add({
                                                xtype: 'hidden',
                                                name: i,
                                                value: fp.baseParams[i]
                                            });
                                        }
                                        fp.doLayout();
                                        // set a custom flag to prevent re-adding
                                        fp.paramsAdded = true;
                                    }
                                    form.submit();
                                }

                    }
                    }]
       }, config);
        Players.panel.Subscription.superclass.constructor.call(this,config);
    }
  });

  var f = Ext.create(Players.panel.Subscription, {id:'formPanel', renderTo: Ext.getBody()});;
});
</script>
</body>
</html>
person Xupypr MV    schedule 15.08.2011
comment
got cls е недефиниран [Прекъсване при тази грешка] cls.xtype = xtype; I е недефиниран [Прекъсване при тази грешка] window.undefined=window.undefined;Ext=...window.attachEvent(onunload,a)}})(); - person Yehia A.Salam; 16.08.2011
comment
Актуализирам кода си (добавя пълна версия). Опитай. При мен работи. - person Xupypr MV; 16.08.2011
comment
Разбира се, трябва да промените url на съществуващ. - person Xupypr MV; 16.08.2011
comment
благодаря, че помогна, но по някаква причина параметърът url се игнорира и страницата се изпраща на себе си - person Yehia A.Salam; 17.08.2011
comment
можете ли да добавите пълния си код? С Players.config.connectorUrl дефиниция. След препоръчани от мен модификации. - person Xupypr MV; 17.08.2011