gpt4 book ai didi

javascript - yii2 在请求后渲染

转载 作者:行者123 更新时间:2023-12-03 09:37:52 25 4
gpt4 key购买 nike

我有一个带有复选框列的 GridView 和一个谷歌地图(2amigos)的 View 。用户通过选择 GridView 中的相应项目来选择要在 map 中显示的机器。 html 按钮将选定的键提交给 Controller 。遵循 Controller 代码(dataProvider 通过后请求更新):

//some code before render   
$dataProvider = new ActiveDataProvider(['query'=>$query, 'pagination'=>false]);
return $this->render('locating', [
'model' => $model,
'searchModel' => $searchModel,
'dataProvider1' => $dataProvider1,
'dataProvider' => $dataProvider,
]);
}

这是 html 按钮的 js 脚本:

$('#showButton').click(function(){
var keys = $('#w0').yiiGridView('getSelectedRows');
$.post("http://localhost:8080/eddb1/frontend/web/index.php?r=tracking/locating",
{'keylist': keys},
function(data){
console.log(data);
});
});

问题是,通过 post 请求,php-render 命令的结果会作为 html 字符串写入 post-response,但 View 不会重新渲染。如果我使用 activeForm 而不是 gridview (来选择机器)和提交按钮执行相同的操作,页面将按应有的方式重新呈现(但这种方式对我不起作用,因为我需要带有过滤器的 gridview 和排序)。我该怎么做才能通过后期请求重新渲染 map (或 View )?

最佳答案

尝试使用renderAjax当通过 ajax 请求时呈现 View 的方法。我假设您使用 actionLocating 来呈现页面获取请求和 ajax 的 View 。因此,在 Controller 中调用 render 之前,请检查这是否是 ajax 请求:

$renderMethod = Yii::$app->request->isAjax ? 'renderAjax' : 'render';

return $this->$renderMethod('locating', $viewParams);

关于javascript - yii2 在请求后渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com