我正面臨PJAX的問題。當通過Pjax提交ActiveForm時,操作正在執行兩次。 一箇中止,另一個成功。 同時在數據庫中插入2個新模型,因爲前者正在插入並中止。Pjax請求被執行2次中止,然後執行
我的控制器代碼
public function actionCreate()
{
$model = new Products();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return "Success";
} else {
return $this->renderAjax('_form', [
'model' => $model,
]);
}
}
和我_form.php這個是
<?php
$this->registerJs('
$.pjax.defaults.timeout = 5000;
$("#product-form-pjax").on("pjax:success", function(data, status, xhr, options) {
if(options.responseText == "Success"){
$.pjax.reload({container: "#pjax-gridview", timeout: 2000});
$("#activity-modal").modal("hide");
}
});
');
?>
<div class="products-form">
<?php Pjax::begin(['id' => 'product-form-pjax', 'enablePushState' => FALSE]) ?>
<?php $form = ActiveForm::begin([
'id' => 'crud-model-form',
'action' => ['product/create'],
'options' => [
'data-pjax' => true,
]
]);
?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'image') ?>
<?= $form->field($model, 'brand')->dropDownList(ArrayHelper::map(Brands::find()->all(),'id','name')) ?>
<?= $form->field($model, 'category')->dropDownList(ArrayHelper::map(Categories::find()->all(),'id','name'),['select' => ''])?>
<?= $form->field($model, 'lot') ?>
<?= $form->field($model, 'prize') ?>
<?= $form->field($model, 'condition') ?>
<?= $form->field($model, 'extra_condition') ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php Pjax::end() ?>
</div>
與GridView控件 所以啓用Pjax爲什麼我的行動被中止,然後我創建通過引導模式這種模式執行。 我已經改變它的PJAX超時選項
Hi.Did你的問題解決? – yafater
是的,我做了...... –
你是怎麼解決你的問題的?我有同樣的問題 – yafater