[英]YII2 Form with GridView and 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中做到這一點?
謝謝。
如果我正確理解了您的問題,則pjax
調用會得到空響應。 這可能是由你有你的實際的事實造成的form
(和它的models
)是外 pjax
呼叫,使其不刷新它們並沒有做任何連接 。
在我看來,最好將帶有queries
/ models
的pjax
包含的所有數據包含在內。 例如:
<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時,它還將執行新的查詢,因此返回新的數據數組。
希望這對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.