Создание сенсорной страницы входа Sencha для codeigniter 2 - PullRequest
0 голосов
/ 05 апреля 2011

Я пытаюсь создать страницу формы входа для codeigniter 2 в приложении sencha touch, и это сводит меня с ума!

есть кто-нибудь для меня здесь какой-нибудь budkicker ...?

Iу меня хорошая форма выполнения, но я не получаю соединение или ответ от системы codeigniter ...

thnx!

Ext.setup({
    icon: 'icon.png',
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    glossOnIcon: false,

    onReady: function() {

        var form;

        var formBase = {
            scroll : 'vertical',
            url    : 'http://www.mycodeignit.er/appsystem/index.php/loginMobile/ajax_validateLogin',
            standardSubmit : false,
            items: [
                {
                    xtype: 'fieldset',
                    title: 'Anmelden',
                    instructions: 'Please login.',
                    defaults: {
                        required: true,
                        labelAlign: 'left',
                        labelWidth: '45%'
                    },
                    items: [
                    {
                        xtype: 'textfield',
                        name : 'username',
                        label: 'Username',
                        useClearIcon: true
                    }, {
                        xtype: 'passwordfield',
                        name : 'password',
                        label: 'Password',
                        useClearIcon: false
                    }]
                }],
            listeners : {
                submit : function(form, result){
                    console.log('success', Ext.toArray(arguments));

                },
                exception : function(form, result){
                    console.log('failure', result);
                    //this.form.close();

                }
            },

            dockedItems: [
                {
                    xtype: 'toolbar',
                    dock: 'bottom',
                    items: [
                        {
                            text: 'Login',
                            ui: 'confirm',
                            handler: function() {
                                form.submit({
                                    waitMsg : {message:'Logging in ...', cls : 'demos-loading'}
                                });
                              console.log('submitting to ', formBase.url);
                              console.log('submitting ', formBase.items);
                              Ext.Ajax.request({
                                  url: formBase.url,
                                  method: 'post',
                                  params: formBase.getValues, //{username: formBase.getValues().username, password : formBase.getValues().password},
                                  failure : function(response){
                                       //data = Ext.decode(response.responseText);
                                       //Ext.Msg.alert('Login Error', data.errorMessage, Ext.emptyFn);
                                        console.log('Login Error! ' + response.responseText);
                                  },
                                  success: function(response, opts) {
                                      console.log('Login success!');
                                      data = Ext.decode(response.responseText);
                                      if (data.errorMessage != null)
                                      {
                                          console.log('Login Error after success!');
                                          //Ext.Msg.alert('Login Error', data.errorMessage, Ext.emptyFn);
                                          //mainPanel.setLoading(false);
                                      } else {
                                          //hide the Loading mask
                                          //mainPanel.setLoading(false);
                                          //show the next screen
                                          //mainPanel.setActiveItem(dashboard, 'slide');
                                          //Ext.Msg.alert('Login success!');
                                          console.log('Login success after data check!');
                                      }
                                  }
                              });

                            }
                        }
                    ]
                }
            ]
        };

        if (Ext.is.Phone) {
            formBase.fullscreen = true;
        } else {
            Ext.apply(formBase, {
                autoRender: true,
                floating: true,
                modal: true,
                centered: true,
                hideOnMaskTap: false,
                height: 385,
                width: 480
            });
        }

        form = new Ext.form.FormPanel(formBase);
        form.show();
    }
});

и в CI

function ajax_validateLogin() {    
$user = $_POST['username'];
$pass = $_POST['password'];


$user_valid = true;

if($user_valid) {
    echo "{success:true}";
} else {
    echo "{success:false,msg:'the username and pass are incorrect!'}";
}

}

1 Ответ

2 голосов
/ 18 апреля 2011

заменить

echo "{success:true}";

на это:

echo "{'success':true}";

или даже лучше

$data['success'] = true;
echo json_encode($data, JSON_FORCE_OBJECT);
...