如何通过单击按钮重新加载带有小部件的 div?
How to reload a div with a widget inside by button click?
我的控制器
public function actionIndex()
{
return $this->render('index');
}
在视图中我调用了一系列小部件。小部件内部的所有逻辑,它们没有任何输入参数。在每个小部件的每个块中,我想添加一个按钮来更新此块内的小部件。
<?= Html::a("Обновить", ['???'], ['class' => 'btn btn-sm btn-default', 'data-pjax' => '#formsection']) ?>
我把widget放在pjax里了
<?php Pjax::begin(['id' => 'formsection', 'linkSelector' => '#chart a']); ?>
<div class="chart" id="chart" style="height: 200px; position: relative;">
<?= Chart::widget(); ?>
</div>
<?php Pjax::end(); ?>
如何将特定块分配给按钮?
据我所知,图表是通过数据库中的一些值绘制的,这些值经常更新,您希望在单击重新加载按钮时将这些更改反映在图表中。
如果以上内容正确,那么您应该使用 $.pjax.reload
来重新加载该部分,将点击事件绑定到按钮
$this->registerJs('
jQuery(document).on("click", "#my-button", function(event){
$.pjax.reload({container:"#formsection",timeout:1000})
}
);
');
希望对您有所帮助。
我的控制器
public function actionIndex()
{
return $this->render('index');
}
在视图中我调用了一系列小部件。小部件内部的所有逻辑,它们没有任何输入参数。在每个小部件的每个块中,我想添加一个按钮来更新此块内的小部件。
<?= Html::a("Обновить", ['???'], ['class' => 'btn btn-sm btn-default', 'data-pjax' => '#formsection']) ?>
我把widget放在pjax里了
<?php Pjax::begin(['id' => 'formsection', 'linkSelector' => '#chart a']); ?>
<div class="chart" id="chart" style="height: 200px; position: relative;">
<?= Chart::widget(); ?>
</div>
<?php Pjax::end(); ?>
如何将特定块分配给按钮?
据我所知,图表是通过数据库中的一些值绘制的,这些值经常更新,您希望在单击重新加载按钮时将这些更改反映在图表中。
如果以上内容正确,那么您应该使用 $.pjax.reload
来重新加载该部分,将点击事件绑定到按钮
$this->registerJs('
jQuery(document).on("click", "#my-button", function(event){
$.pjax.reload({container:"#formsection",timeout:1000})
}
);
');
希望对您有所帮助。