Yii 2框架使用Ajax与后端交互

近来用了一下Ajax技术做了一下与yii框架的后台交互,虽然不是很复杂,但是还是写一下。

前端JS代码:

function delete(id){
    if(confirm("确认删除吗"))
        $.ajax({
            url : "index.php?r=nav/delete",
            type : 'post',
            data : {"id":id},
            dataType : 'json',
            async : false,
            success : function(data){
                if(data.status)
                    window.location.reload();
                else
                    alert("删除失败");
            },
            error : function(){
                alert("根本没有传过去");
            }
        });
}

后端控制器代码:

public function actionDelete(){
        $id = \Yii::$app->request->post("id", '');
        $status = false;
        if(NavForm::delete($id))
            $status = true;
        return json_encode(['status' => $status]);
    }

这样就完成了一次Ajax交互。

其中前端的url参数可能会遇到点问题,实在不知道怎么写url的话,就先随便写一个,之后再在浏览器中用控制器查看json数据发送到哪去了,再根据结果拼接正确的url。

控制器中返回json数据有两种方式:

1.return json_encode(['status'] => $status);

2.在返回代码前添加返回头信息:

Yii::$app->response->format = Response::FORMAT_JSON;

之后返回数组就可以了:

return ['status' => $status];


猜你喜欢

转载自blog.csdn.net/zai_xia/article/details/79699131