Yii обновить cgridview с помощью кнопки не работает в IFRAME

Я пытаюсь обновить CGridview после обновления mongodb через кнопку в окне Cjuidiag.
МОЙ Код:

index.php

<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'uploaddialog',
'options'=>array(
'title'=>'Edit Documents',
'autoOpen'=>false,
'modal'=>true,
'width'=>958,
'height'=>623,
),
));
?>
<iframe id="cru-frame-struct" width="100%" height="100%" frameBorder="0" scrolling="yes" >
<?php //$this->renderPartial('uploaddocument',array()); ?>
</iframe>

<?php $this->endWidget('zii.widgets.jui.CJuiDialog');?>
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'Prd-grid',
'dataProvider'=>$dataProvider,
'columns' => array(
array(
'class'=>'CButtonColumn','template' => '{updateline}',
'buttons' => array(
'updateline' => array(
'options'=>array('style'=>'margin-left:20px'),
'imageUrl'=>\Yii::app()->request->baseUrl.'/images/update.png',
'url'=>'$this->grid->controller->createUrl("editdocument",
array("id"=>$data["Document_id"],"OriginObject"=>isset($data["OriginObject"])?$data["OriginObject"]:""))',        //
'click'=>'function(){
$("#cru-frame-struct").attr("src",$(this).attr("href"));
$("#uploaddialog").dialog("open");
return false;
}',
)
),
),
array(
'name' => 'ID',
'type' => 'raw',
'value' => '$data["Document_id"]'
),
),
'htmlOptions' => array(
'class' => ""),

));

?>

Uploaddocument.php

<?php echo CHtml::button('Update WorkFlow',array('id'=>'updworkflow','class'=>'btn','onclick'=>'workflow()','background-style'=>'none')); ?>
<h4><?php echo "Document Log";?></h4>
<?php$mongo = new MongoClient( Yii::app()->mongodb->connectionString);
$dbname = Yii::app()->mongodb->dbName;
$temp = array();
$colname = 'Documents';
$collection = $mongo->$dbname->$colname;
$cursor = $collection->find(array("_id" => new MongoId($DocId)));
foreach ($dcursor as $ddoc) {
if(isset($ddoc['Workflows']))
{
$sdoc =($ddoc['Workflows']);
foreach ($sdoc as $wflw)
{
$temp ["Date"]= $wflw["Date"];
$temp ["Initials"]= $wflw["Initials"];
$temp ["Status"]= $wflw["Status"];
$temp ["Comments"]= $wflw["Comments"];
$pendarray[] = $temp;
}
}
}
$dataProvider = new \CArrayDataProvider ($pendarray,array('keyField'=>'Date'));

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'documentlog-grid',
'dataProvider'=>$dataProvider,
'columns' => array(
array(
'name' => 'Date',
'type' => 'raw',
'value' => 'isset($data["Date"])?$data["Date"]:""'
),
array(
'name' => 'Initials',
'type' => 'raw',
'value' => 'isset($data["Initials"])?$data["Initials"]:""'
),
array(
'name' => 'Status',
'type' => 'raw',
'value' => 'isset($data["Status"])?$data["Status"]:""'
),
array(
'name' => 'Comment',
'type' => 'raw',
'value' => 'isset($data["Comments"])?$data["Comments"]:""'
),
),
'htmlOptions' => array(
'class' => ""),
));
?>

controller.php:

public function actionUpdateWorkflow()
{
$status = isset($_POST["Status"])?$_POST["Status"]:"";
$comments = isset($_POST["Comments"])?$_POST["Comments"]:"";
$now = new \DateTime();
$mongo = new \MongoClient( \Yii::app()->mongodb->connectionString);
$dbname = \Yii::app()->mongodb->dbName;
$colname = 'Documents';
$mongo->$dbname->$colname->update(array("_id" => new \MongoId($_POST["id"])),
array('$addToSet' =>  array(
'Workflows' => array(
'Date' => $now->format('Y-m-d H:i:s'),
'Initials' =>\Yii::app()->user->getUserName(),
'Status'=>$status,
'Comments'=>$comments,
)))
);

//echo \CHtml::script("$.fn.yiiGridView.update('documentlog-grid');
//  window.parent.$.fn.yiiGridView.update('documentlog-grid');");
\Yii::app()->end();
}
public function actionIndex()
{
$this->render('index');
}

public function actioneditdocument()
{
$this->layout = '//layouts/customIFrame';

$this->renderPartial('uploaddocument',array(
'DocId'=>$DocId,
));
}

}

JavaScript

<script>
function workflow()
{
$.ajax({
type:"POST",
url :"<?php echo CController::createUrl('default/UpdateWorkflow'); ?>",
data:{"Comments":comments,
"Status":status,
"id":docid
},
success:function (data) {
$.fn.yiiGridView.update('documentlog-grid');
return true;
}
error: function(){
alert('failure ');
}
});
}
</script>

Я не уверен, что ошибка в этом коде. Я заполняю сетку данными Монго. Я хочу обновить данные сетки после каждого обновления / вставки в mongodb по кнопке.
Пожалуйста, помогите мне решить эту проблему.

0

Решение

Можете ли вы попробовать так и скажите мне, как это работает:

$('#documentlog-grid').yiiGridView('update');

Также попробуйте это из консоли браузера.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]