近来用了一下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];