2017-07-29 9 views
0

Ich möchte pjax in Ansichten/Viewfile/Index verwenden, um den Zustand der Datenbankzeile nach dem Klicken auf eine Schaltfläche zu aktualisieren. Wie kann man das Schritt für Schritt machen, in welcher Datei JavaScript Code schreiben und in welcher Datei Daten von AJAX bekommen?Wie pjax in yii2 verwenden, um eine Spalte in Yii2 zu aktualisieren?

<?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>

Wie Onclick Zustand in der Datenbank speichern ('MyButton')? In welcher Datei sollte jquery für ajax aufgerufen werden?

Antwort

0

Gibt es einen besonderen Grund, pjax zu verwenden?

Sie können Ihren Js-Code entweder in Ihrer View-Datei schreiben mit $ this-> registerJs ("Ihr Js-Code geht hier"); oder in einer separaten js-Datei und laden Sie es auf dieser Seite.

die Daten, die Sie über eine Ajax-Anfrage in Ihrem Controller/Aktion erhalten. Sobald Sie die Daten erhalten, können Sie Ihre Logik zum Laufen bringen und die Datenbankzeile aktualisieren.

+0

danke.Sie sind richtig, aber gibt es ein komplexes Beispiel darüber – areff

+0

Ja, auf jeden Fall. Für komplexe js-Teile schreiben wir js lieber in einer separaten Datei und konfigurieren Ihre App so, dass sie die js-Datei automatisch mit dem gleichen Namen wie der Ansicht enthält. Das sollte alle Ihre komplette js handhaben und Implementierung würde ordentlich sein – Gunnrryy

+0

wie man eindeutige ID für jeden Knopf in einer Reihe setzt? – areff

Verwandte Themen