如何在yii2中使用pjax更新Yii2中的列?

时间:2017-07-29 22:11:41

标签: php ajax yii yii2 pjax

我想在views / viewfile / index中使用pjax来点击按钮后更新数据库行的状态。如何逐步完成,在哪个文件中编写JavaScript代码以及在哪个文件中从AJAX获取数据?

<?php
use yii\widgets\Pjax;

Pjax::begin();
echo GridView::widget([...]);
Pjax::end();

?>

<?php

use yii\helpers\Html;
use yii\grid\GridView;

/* @var $this yii\web\View */
/* @var $searchModel app\models\LaptopSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Laptops';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="laptop-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?>

    <p>
        <?= Html::a('Create Laptop', ['create'], ['class' => 'btn btn-success']) ?>
    </p>
	<?php \yii\widgets\Pjax::begin('id' => 'rp1'); ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id',
            'network',
            'technology',
            'sup_id',
            'speaker',
			'size',
			[
            'class' => 'yii\grid\ActionColumn',
            'template' => '{myButton}' , // the default buttons + your custom button
            'buttons' => [
                'myButton' => function($url, $model, $key) {     // render your custom button
                    return Html::a('تایید');
                }
            ]
			],
			
			  // [
           // 'class' => DataColumn::className(), // this line is optional
           /* 'attribute' => 'name',
            'format' => 'text',
            'label' => 'Name',
        ],*/
            // 'optical_drive',
             //'webcam',
            // 'touchpad',
            // 'card_reader',
            // 'ethernet',
            // 'vga',
            // 'hdmi',
            // 'usb3_ports',
            // 'usb2_ports',
            // 'usb_type_c',
            // 'thunderbolt_ports',
            // 'serial_ports',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
	<?php \yii\widgets\Pjax::end(); ?>
</div>

如何在数据库中保存状态onclick('mybutton')?在哪个文件中应该为ajax调用jquery?

1 个答案:

答案 0 :(得分:0)

有没有特别的理由使用pjax?

您可以使用在您的视图文件中编写js代码 $ this-&gt; registerJs(“你的js代码在这里”); 或者在一个单独的js文件中,并将其加载到此页面上。

您将通过控制器/操作中的ajax请求收到的数据。 一旦收到数据,就可以让你的逻辑工作并更新数据库行。