我想在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?
答案 0 :(得分:0)
有没有特别的理由使用pjax?
您可以使用在您的视图文件中编写js代码 $ this-&gt; registerJs(“你的js代码在这里”); 或者在一个单独的js文件中,并将其加载到此页面上。
您将通过控制器/操作中的ajax请求收到的数据。 一旦收到数据,就可以让你的逻辑工作并更新数据库行。