Yii2 Kartik редактируемое значение ввода будет меняться только после обновления - PullRequest
0 голосов
/ 03 мая 2019

Я использую Kartik Editable виджет ввода.У меня есть home модель и tema модель атрибута здесь.Всякий раз, когда я ввожу и отправляю значение в поле, оно не изменится на месте, а изменится только после того, как я обновлю страницу.Что я должен делать?Спасибо!

Мой контроллер:

public function actionIndex()
    {
        $searchModel = new HomeSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);


// table only has one row
$model= Home::find()->one();

    // Check if there is an Editable ajax request
    if (isset($_POST['hasEditable'])) {

        // use Yii's response format to encode output as JSON
        \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

        // read your posted model attributes
        if ($model->load($_POST)) {
            // read or convert your posted information. Based on the 'name' property set in the view. So this 'tema' of $model-> tema comes from 'name' property set in the view.

            $value = $model->tema;
           $model->save();
            // return JSON encoded output in the below format
            return ['output'=>$value, 'message'=>'output berhasil'];

            // alternatively you can return a validation error
            // return ['output'=>'', 'message'=>'Validation error'];
        }
        // else if nothing to do always return an empty JSON encoded output
        else {
            return ['output'=>'', 'message'=>'output gagal'];
        }

        };

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

Представление

  <?php 

    echo Editable::widget([
    'model' => $model, 
    'attribute' => 'tema',
    'value'=>$model->tema,
/*'asPopover'=>'false',*/
    'type' => 'post',

    'header'=>'tema', 
    'valueIfNull'=>'value-nya NULL',
    'format'=>'link',
    'size'=> 'lg',
    'inputType' => Editable::INPUT_TEXT,
    'editableValueOptions' => ['class' => 'text-success h3']
]);         ?>

Другая проблема, всякий раз, когда я использовал 'asPopover'=>'false', он не показывает ошибки, но ничего не происходит, когда ящелкните по предположительно редактируемому полю ввода.Редактируемое встроенное поле просто не будет отображаться.Когда я использую опцию popOver, всплывающее окно автоматически запускается без щелчка, а также оно всплывает в верхнем левом углу страницы.Только после того, как я нажму на редактируемый виджет, который вызвал всплывающее окно, он вернется в нужное положение.Это ошибка?Я использовал последний Yii2 с начальной загрузкой 4, и я установил глобальный параметр в params.php config с 'bsVersion' => '4.x',, как в документации

...