2017-07-29 6 views
0

ビュー/ viewfile/indexでpjaxを使用して、ボタンをクリックした後にデータベースの行の状態を更新したいとします。どのようにファイルをJavaScriptコードを書いて、どのファイルがAJAXからデータを取得するのかを段階的に行うことができますか? ( 'myButtonという')onclickのデータベースの状態を保存する方法yii2でpjaxを使用してYii2の列を更新するにはどうすればよいですか?

<?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> 
 
\t <?php \yii\widgets\Pjax::begin('id' => 'rp1'); ?> 
 
    <?= GridView::widget([ 
 
     'dataProvider' => $dataProvider, 
 
     'filterModel' => $searchModel, 
 
     'columns' => [ 
 
      ['class' => 'yii\grid\SerialColumn'], 
 

 
      'id', 
 
      'network', 
 
      'technology', 
 
      'sup_id', 
 
      'speaker', 
 
\t \t \t 'size', 
 
\t \t \t [ 
 
      '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('تایید'); 
 
       } 
 
      ] 
 
\t \t \t ], 
 
\t \t \t 
 
\t \t \t // [ 
 
      // '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'], 
 
     ], 
 
    ]); ?> 
 
\t <?php \yii\widgets\Pjax::end(); ?> 
 
</div>

?どのファイルでajaxのjqueryを呼び出す必要がありますか?

答えて

0

pjaxを使用する特別な理由はありますか?

$ this-> registerJsを使用して、ビューファイルにjsコードを書くことができます(「あなたのjsコードはここにあります」)。 または別のjsファイルに保存して、このページにロードしてください。

あなたのコントローラ/アクションでajaxリクエストを介して受け取るデータ。 データを受信すると、ロジックを動作させてデータベース行を更新できます。

+0

ありがとうございます。あなたは正しいですが、複雑な例があります。 – areff

+0

はい、間違いありません。複雑なjsの部分では、別のファイルにjsを書き込んだり、ビューの名前と同じ名前のjsファイルを自動で含むようにアプリを設定する方が好きです。それはあなたの完全なjsをすべて処理する必要があり、実装はきちんとしています – Gunnrryy

+0

行内の各ボタンの一意のIDを設定する方法は? – areff

関連する問題