2013-05-29 4 views
0

У меня есть пользовательская форма редактирования. Форма загружается из магазина Json с помощью этого кода:Форма не отправлена ​​

var store = Ext.create('cp.store.form.Paciente',{}); 
    store.load({params:{idUsuario: idPaciente}}); 
    var form = Ext.create('cp.view.form.EditPaciente',{ 
     action: 'bin/paciente/modificar.php' 
    }); 
    // note: write this lines in the controller 
    form.on('afterrender',function(form,idPaciente){ 
     form.getForm().loadRecord(store.first()); 
     form.getForm().findField('idUsuario').setValue(idPaciente); 
    }); 
    var win = Ext.create('cp.view.ui.DecoratorForm',{ 
     aTitle: 'Editar paciente', 
     aForm: form 
    }); 
    win.show(); 

Код загрузки работает нормально. Код отправки:

var me = this; 
    console.log('Submit...'); 
    console.log(this.url); 
    // WHY NOT SUBMIT !!!! 
    this.getForm().submit({ 
     console.log('submit !'); 
     success: function(form,action){ 
      if(action.result.success === true){ 
       Ext.create('cp.view.ui.AlertOk',{mensaje:action.result.msg}).showDialog(); 
       me.up('decoratorForm').close(); 
      }else{ 
       Ext.create('cp.view.ui.AlertErr',{mensaje:action.result.msg}).showDialog(); 
      } 
     } 
    }); 

Итак, код отправки начинает работать. FireBug показывает первый и второй «console.log», и значение «this.url» верное. Но, третий «console.log» не выполняется, и форма не отправляется на сервер. Ошибка Firebug 404 для значения «this.url». Любые идеи? Спасибо!

Добавьте определение формы:

Ext.define('cp.view.form.EditPaciente',{ 
    extend: 'Ext.form.Panel', 
    alias: 'widget.editPaciente', 


    bodyPadding: '5px 5px 5px 5px', 
    bodyStyle: 'border: none', 
    fieldDefaults: { 
     labelWidth: 65, 
     labelAlign: 'top' 
    }, 

    initComponent: function(){ 
     this.url = this.action, 
     this.method = 'POST', 
     this.items = [ .... ] 
     this.callParent(arguments); 
    } 
}); 
+0

Работает ли URL-адрес при доступе к нему за пределами этого сценария? 404 - это 404 ... Кроме того, третий консоль.log() не работает, я подозреваю, потому что вы поместили его в синтаксически неправильное место. Аргумент параметров, переданный submit(), является объектом. – existdissolve

+0

@existdisslove mmm скрипт на стороне сервера работает за пределами приложения. Доступ с URL: http: //sigetumed.cp/bin/paciente/modificar.php и показать на экране: «{'success': false, 'msg': 'Faltan llenar campos obligatorios'}". Хороший. Ниже опубликовано мое определение формы. – ramiromd

+0

вы должны проверить 'submitUrl' вашей формы, проблема там. И также вы уверены, что форма имеет свойство, подобное 'url'; Я так не думаю. Еще раз проверьте [API] (http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.Panel). – talha06

ответ

0

вы не можете положить заявление журнала внутри литералов объектов.

submit({        <-- This is an object literal 
      console.log('submit !'); <-- This can not be in an object literal 
      success: function(form,action){ 
       if(action.result.success === true){ 
        Ext.create('cp.view.ui.AlertOk',{mensaje:action.result.msg}).showDialog(); 
        me.up('decoratorForm').close(); 
       }else{ 
        Ext.create('cp.view.ui.AlertErr',{mensaje:action.result.msg}).showDialog(); 
       } 
      } 
     }); 
Смежные вопросы