0

我正在实现一个带有登录屏幕的应用程序。而且我不知道我应该如何实现 sencha touch 的 json 响应。

这是我的 login.js

Ext.Ajax.request({
url: 'http://localhost/alt/FIFA-Europaliga/admin/index.php?page=login_try_app',
method: 'post',
params: {
    login: Ext.getCmp('username').getValue(),
    password: Ext.getCmp('passwort').getValue(),
},
failure: function (response) {
    var loginResponse = Ext.JSON.decode(response.responseText);
    if (loginResponse.success === "false") {
        alert('fail');
    }
},
success: function (response) {
    //console.log(response);
    //console.log(response.responseText);

    var loginResponse = Ext.JSON.decode(response.responseText);
    if (loginResponse.success === "true") {
        Ext.Viewport.setActiveItem("mainview",{
            type: "pop",
            direction: "left"
        });
    }
},

});

这是我的 login_try.php

<?php

$result = "{'success':false}";

if (count($_POST) > 0) {
$_POST = $sys->db->sql_filter($_POST);
$login = $_POST['login'];
$password = $_POST['password'];

$user = new User($login, $password);

if ($user->login($sys->db)) {
    session_start();
    $_SESSION['user'] = $user;
    $result = "{'success':true}";
} else {
    $result = "{'success':false}";
}
 } else {
$result = "{'success':false}";
 }

echo $result;
 echo json_encode($result);
?>

现在我从服务器获取完整的 login.php 文件作为响应。我只想要一个真假

你能帮助我吗?

谢谢!塞巴斯蒂安

4

1 回答 1

0

应该是'问题。尝试使用数组和 json_encode()。不要按原样回显 $result。

// default false
$result = array('success' => false);
//...

    $result['success'] = true;
} 

echo json_encode($result);

并且没有理由success false在代码中间进行制作(已经默认为 false)。

于 2013-04-27T11:48:14.353 回答