Я пытаюсь визуализировать частичное представление на index page
, чтобы показать график, когда определенное условие выполняется, выполнив следующие действия.
Индекс. php
<?PHP
.
.
.
.
else if($type == "403")
{
$columns = [
['class' => 'yii\grid\SerialColumn'],
'Device_ID',
'Customer_ID',
'MSN',
'kWh',
'Data_Date_Time',
];
$this->render('_kwhChart', [
'dataProvider' => $dataProvider,
]) ;
}
.
.
.
.
?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'columns' => $columns
]);
?>
Когда определенное условие выполняется, я могу видеть обновленные значения gridview
, но не частичное представление, т. Е. График.
Просмотр пациента
<?PHP
$dataPointskWh = array();
$model = $dataProvider->getModels();
foreach ($model as $row)
{
// pushing for kwh values
array_push($dataPointskWh,
array("label"=>$row['Data_Date_Time'],"y"=>$row['kWh']));
}
?>
<div id="chartContainer1" style="width: 100%; height: 300px;display: inline-block;"></div>
<script>
var chart1 = new CanvasJS.Chart("chartContainer1", {
exportEnabled: true,
animationEnabled: true,
zoomEnabled: true,
theme: "light1",
title:{
text: "Voltages"
},
legend:{
cursor: "pointer",
verticalAlign: "bottom",
horizontalAlign: "center",
itemclick: toggleDataSeries
},
data: [
{
type: "column",
lineColor:"red",
legendMarkerColor: "red",
name: "kWh",
indexLabel: "{y}",
//yValueFormatString: "V1#0.##",
showInLegend: true,
dataPoints: <?php echo json_encode($dataPointskWh, JSON_NUMERIC_CHECK); ?>
}
]
});
chart1.render();
function toggleDataSeries(e){
e.dataSeries.visible = !(typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible);
chart1.render();
}
Примечание: я использую кнопку отправки, и страница каждый раз обновляется sh когда нажата кнопка отправки.
Как этого добиться?
Любая помощь будет принята с благодарностью.