-2

我刚开始学习 extjs,并且正在尝试登录表单。但是找不到太多可阅读的材料并无法使登录表单正常工作。我尝试的表单创建字段,在 login.php 上提交表单。但不是执行 "success:" "failure:" ,而是在 login.php 上打印 json 代码,当我尝试使用 prin_r($_POST) 打印提交的代码时,它返回空白值。

这是来自 app.js 的代码

Ext.require('Ext.container.Viewport');

Ext.application({
name : 'userApp',
appFolder : 'app',

launch : function() {
    console.log("random stuff ");
    Ext.create('Ext.container.Viewport', {
        layout : 'fit',
        items : [
        {
            xtype: 'form',
            id: 'userLogin',
            title: 'User Login',
            name: 'loginform',
            items: [{
                xtype: 'textfield',
                fieldLabel: 'Username',
                name: 'username',
                allowBlank: false,
            },
            {
                xtype: 'textfield',
                fieldLabel: 'Password',
                name: 'password',
                allowBlank: false,
            },
            {
                xtype: 'button',
                text: 'Login',
                url: 'login.php',
                handler: function(obj){
                    form = obj.getParent().getParent();
                    form.submit({
                        url: 'login.php',
                        method: 'POST',
                        success: function() {
                            console.log(arguments);
                            alert("sss");
                        },
                        failure: function() {
                            console.log(arguments);
                            alert("ssssssss");
                        }
                    });
                }
            }]
        }]
    });
}
});

和 login.php 是

<?php
print_r($_POST);
if(isset($_REQUEST['username']) && isset($_REQUEST['password'])){
    if($_REQUEST['username'] == "neelam" && $_REQUEST['password'] == "neelam"){
        echo '{"success": true}';
    }
}
echo '{"success": false}';
?>

请发extjs4 + php的CRUD教程链接。

4

1 回答 1

1

尝试更改以下行:

form = obj.getParent().getParent();

到:

form = obj.up('userLogin');

另外,您可能想添加一个 die(); 在您的 php 代码中的以下行之后,否则即使成功,您也会得到成功和失败的响应。

echo '{"success": true}';
die();

并且不要忘记在测试之前删除 print_r() :)

于 2012-10-04T18:55:25.220 回答