2014-11-23 83 views
0

我有到模型視圖:聯繫人和電話,我想創建一個視圖更新此兩款車型,我的看法是這樣的:YII2形式GridView和Pjax

<?php $form = ActiveForm::begin(['id'=>'Contact']); ?> 
<?= $form->field($model, 'name')->textInput() ?> 
<?php Pjax::begin(); ?> 
<?= \yii\grid\GridView::widget([ 
    'id' => 'phonesGrid', 
    'dataProvider' => new ArrayDataProvider([ 
     'allModels' => $fones, 
     'sort' => [ 
      'attributes' => ['number', 'ramal'], 
     ], 
     'pagination' => false, 
    ]), 
    'columns' => [ 
     'number', 
     'ramal', 
     ['class' => 'yii\grid\ActionColumn'] 
    ], 
]); ?> 
<?php Pjax::end(); ?> <?php ActiveForm::end(); ?> 

的問題是當我打電話$.pjax.reload的動作(創建OU更新)的ContactController是呼叫,但該請求不具有接觸形式的數據並將該數據進入是明確的。 我怎樣才能做到這一點YII2?

謝謝。

+0

你的問題很難理解。所以你的問題是,當你不能$ .pjax.reload聯繫人[姓名]字段被清空?如果是這種情況,那麼你可能刷新頁面而不使用pjax。 – 2014-11-23 22:42:56

+0

看到這篇文章http://www.yiiframework.com/wiki/772/pjax-on-activeform-and-gridview-yii2/ – GAMITG 2015-06-22 06:15:34

回答

0

如果我正確理解你的問題,你從pjax調用空響應。這可能是由以下事實造成的,你有你的實際form(和它的models)是pjax調用的外部,使其刷新他們並沒有做出連接任何責任。

在我的觀點中,最好包含pjax中的所有數據與queries/models。例如:

<div class='resp-col col-12'> 
    <?php Pjax::begin([ 
     'id'=>'all-tags', 
     'timeout' => 5000, 
    ]); ?> 
<?php 
$query = Tag::find(); 
$dataProvider = new ActiveDataProvider([ 
    'query' => $query, 
    'pagination' => [ 
     'pageSize' => 20, 
    ], 
]); 
echo GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'columns'=> [ 
     'view'=>[ 
     'header'=>'view', 
     'options'=>[ 
      'width'=>'5%' 
     ], 
     'format'=>'raw', 
     'value'=>function ($data) { 
      return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', Url::to(['detail', 'id'=>$data->id]), ['data-type'=>'modal', 'data-title'=>'View item']). 
      '<a><span class="glyphicon glyphicon-remove" onclick=DeleteTag("'.$data->id.'")></span></a>';; 
     }, 
     ], 
     'name', 
     'content', 
    ] 
]); 
?> 
<?php Pjax::end()?> 

當pjax.reload被呼籲所有標籤,它也將執行新的查詢,因此返回一個新的數據陣列。

希望這對您有所幫助。