2017-01-31 4 views
1

ich diesen Knopf im Blick haben:
<button name="render_button" class='btn btn-block btn-primary' style="width:100px;height:30px;" > Render </button><br>
Wie Aufruf zur Einrichtung actionIndex mit bestimmten Funktion, zum Beispiel, wenn button_1 dann actionIndex mit getSome(); nennen geklickt wird, wie folgt aus:Knopf klicken yii2

public function actionIndex() 
{ 
    if(isset($_POST['render_button'])) { 
     $data = order::getSome(); 
    } 

    $dataProvider = new ArrayDataProvider([ 
     'allModels' => $data, 
     'sort' => [ 
     ], 
     'pagination' => [ 
      'pageSize' => 50, 
     ], 
    ]); 

    return $this->render('index',['dataProvider' =>$dataProvider]); 
} 

Antwort

1

Sie sollten einen Anfangswert der $data Variable gesetzt, ein Wert wie null und geben sie dann an die $dataProvider Array wie folgt:

public function actionIndex() 
{ 
    $data = null; 
    if(isset($_POST['render_button'])) { 
     $data = order::getSome(); 
    } 

    $dataProvider = new ArrayDataProvider([ 
     'allModels' => $data, 
     'sort' => [ 
     ], 
     'pagination' => [ 
      'pageSize' => 50, 
     ], 
     'data' => $data 
    ]); 

    return $this->render('index',['dataProvider' =>$dataProvider]); 
} 

nun in Ihrer Ansicht, überprüfen Sie nur, wenn die $data Variable null ist oder sonst bekommen Sie den Auslöser und haben order::getSome() Daten strored in der $data Variable.

EDIT

Haben nicht Sie übergeben die $data Variable auf den allModels Element, aber es ist das gleiche. Überprüfen Sie einfach die allModels innerhalb Ihrer Sicht, wenn es auf null eingestellt ist oder es einige Daten hat.

UPDATE

aktualisiert index.php Ihre Ansicht nach einer Post Form wie diese hat:

<form method="post"> 
    <button type="submit" name="render_button" class='btn btn-block btn-primary' style="width:100px;height:30px;" > Render </button><br> 
</form> 
+0

Es muss nicht auf den Button in der Steuerung handhaben. Zum Beispiel 'if (isset ($ _ POST ['render_button'])) { actionIndex(); } 'Es gibt keine Refresh-Seite. – stand

+0

Sie müssen ein Formular haben oder mit AJAX posten/bekommen. Können Sie mit dem vollständigen HTML-Code aktualisieren, der die Schaltfläche enthält? –

+0

Ich habe nur dieses '
'in Sicht (index.php) – stand