Yii2: mise à Jour de la Grille-affichage à l'aide de Pjax

Suivant ce Wiki Yii 2.0: Pjax sur ActiveForm et GridView - Yii2

J'ai essayé d'utiliser mon gridview pour mettre à jour en Ajax, sans page-reload, mais ne réussissent pas.

code de mon _form.php

<?php

$this->registerJs(
   '$("document").ready(function(){ 
        $("#new_medicine").on("pjax:end", function() {
            $.pjax.reload({container:"#medicine"});  //Reload GridView
        });
    });'
);
?>


<?php

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use kartik\grid\GridView;
//use yii\grid\Gridview;
use yii\data\ActiveDataProvider;

/* @var $this yii\web\View */
/* @var $model app\models\Medicine */
/* @var $form yii\widgets\ActiveForm */
?>
<!-- <div class="row">
    <div class="col-lg-6 col-lg-offset-3"> -->
<div class="medicine-form">
    <?php yii\widgets\Pjax::begin(['id' => 'new_medicine']) ?>

     <?php $form = ActiveForm::begin(['options' => ['data-pjax' => true ]]); ?>

    <?= $form->field($model, 'medicine_id')->textInput(['maxlength' => 10]) ?>

    <?= $form->field($model, 'medicine_name')->textInput(['maxlength' => 50]) ?>

    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
        <?= Html::submitButton($model->isNewRecord ? 'Save & New' : '',$option=['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary','name'=>'save_and_new']) ?>
    </div>

    <?php ActiveForm::end(); ?>
    <?php yii\widgets\Pjax::end() ?>

</div>

Code dans mon contrôleur

public function actionIndex()
    {
        $model = new Medicine();

        if ($model->load(Yii::$app->request->post()) && $model->save())
        {
            $model = new Medicine(); //reset model
        }
        $searchModel = new MedicineSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

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

code index.php

<?php

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

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

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

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

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

            'id',
            'medicine_id',
            'medicine_name',

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

Je pense que j'ai suivi ces instructions très attentivement, mais sûrement que je suis absent quelque chose comme les grille-vue n'est pas en montrant les nouveaux enregistrements ajoutés, sans page-reload.

Toute aide sera grandement appréciée.
Merci.

Êtes-vous sûr que l'ajax ne fonctionne pas? Je veux dire, avez-vous vérifier le firebug et vous ne voyez aucune requête ajax?
Salut Cher Ali, Oui ça ne fonctionne pas. seule différence du wiki est que je n'ai pas rendu le formulaire sur le index.php page. Je veux mettre à jour la grille-vue à partir de la _form.php. Si je suis le rendu de la forme sur le index.php ensuite, il est au travail, mais qui ne résout pas mon but.
Je suis l'ajout de données dans le _form.php lui-même et j'ai gardé l'index.php page ouvert dans autre onglet du navigateur. Je veux voir la mise à jour des données dans la page d'index(grille-vue) de la page. n'est-ce pas possible?
Salut Ali, un vrai but, je suis en train d'accomplir est que j'ai une médecine formulaire de demande et il y a une grille à vue en vertu de médecine magasin avec les mêmes données. La médecine magasin saura sans rafraîchir la page qu'il existe une médecine nouvelle demande.

OriginalL'auteur Pawan | 2015-01-05