PHP页面控制器里用if/exit处理各种前端JS发出的"事件/操作/请求"

JS是前端,PHP是后端,后端PHP要获取前端JS的变量,那前端JS可以通过AJAX传输数据给后端PHP.
比如登录页面login.php:

/login.php              显示登录界面(默认:HTML)
/login.php?action=login 处理登录事件(表单:AJAX+JSON)
<?php
if (!defined('APP_ROOT')) define('APP_ROOT', './');
require APP_ROOT.'include/common.php'; // 加载functions.php,验证cookie等
//后端PHP使用if处理各种前端JS发出的"事件/操作/请求",处理完成exit退出
if(isset($_GET['action']) && $_GET['action']==='login') {
    if(isset($_POST['name'])
    && isset($_POST['pass'])
    && $_POST['name']==='ele'
    && $_POST['pass']===123) {
        $ret['num'] = 0;
        $ret['msg'] = '登录成功';
        echo json_encode($ret);
        exit();    
    } else {
        $ret['num'] = 1;
        $ret['msg'] = '登录失败';
        echo json_encode($ret);
        exit();    
    }
    exit();
}
?>

<?php
//下面的 "header.php + 登录表单 + footer.php" 
//可以考虑写一个render函数加载,从而分离界面和上面的逻辑
require 'header.php';
?>

<?php
//下面显示登录表单(PHP+HTML+AJAX)
?>
<script src="<?php echo $app['theme_dir']; ?>/js/jquery.js"></script>
<script>
//给登录按钮绑定点击事件
$('.con').on('click', '.login', function(){
    $(this).text('正在登录');
    var context = this;
    $.ajax({
        url: 'login.php?action=login',
        type: 'POST',
        //这里就是JS传输给PHP的变量,可以通过DOM获取
        data: 'name='+$('.name').val()+'&pass='+$('.pass').val(),
        success: function(data){
            var obj = $.parseJSON(data);
            console.log(obj);
            //JS根据PHP返回值进行相应操作
            if(obj.num==0) {
                $(context).text(obj.msg);
                setTimeout(function(){
                    //1秒后跳转到首页
                    window.location.href = '/';
                }, 1000);
            } else {
                $(context).text(obj.msg);
                setTimeout(function(){
                    $(context).text('登录');
                }, 1000);
            }
        }
    });
});
</script>

<?php
require 'footer.php';
?>

 

 

转载于:https://my.oschina.net/eechen/blog/671511

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值