控制器
public function actionCreate() {
$model = new Ceremonia();
if ($this->request->isPost) {
if ($model->load($this->request->post()) && $model->save()){ Yii::$app->getSession()->setFlash('info',[' Nombre <strong>insertado</strong> correctamente!!!']); return $this->redirect(['index']);
}}else{ $model->loadDefaultValues();}
if(Yii::$app->request->isAjax) {
return $this->renderAjax('create',['model' => $model]); }else{ return $this->render('create',['model' => $model]);
}
}
项目中的索引文件:索引
<?= Html::button('<i class="fas fa-plus"></i> Insertar',['value'=>Url::to('create'),'class' => 'btn btn-info','data-toggle'=>'modal','data-target'=>' ajax','id'=>'ModalButtonCreate']); ?>
<?php
Modal::begin(['title'=>'Insertar', 'id'=>'modalCreate', /*'size'=>'modal-lg',*/]);
echo '<div id="modalContentCreate"></div>';
Modal::end();
?>
项目中的main.js文件:主文件.js
$(function(){
$('#ModalButtonCreate').click(function(){
$('#modalCreate').modal('show').find('#modalContentCreate').load($(this).attr('value'));
});
});
项目中的AppAsset文件:应用程序资产
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = ['css/site.css',];
public $js = ['js/main.js',];
public $depends = ['yii\web\YiiAsset','yii\bootstrap4\BootstrapAsset',];
}
1条答案
按热度按时间wgx48brx1#
你没有把“Create”文件代码放在这里进行检查。2最好把它放在这里而不是AppAsset。3因为显然你的奖章工作得很好
可用的代码仅表示单击按钮,将显示奖牌窗口,然后通过jQuery中的 AJAX
load
方法呈现“Create”页面。在“创建”页上,必须使用
ActiveForm
或Html库中的活动方法(如表单中的activeInput
)才能使用模型类或“ActiveRecord”类。例如,“ActiveRecord”中的save()
方法和“model”或“ActiveRecord”中的validate()
方法。***取决于您使用的
($model->load($this->request->post()) && $model->save())
注意:如果您正在处理模型并且需要验证,请考虑使用ActiveForm。link
有两组输入方法。一组以active开头,称为active input,另一组不以active开头。Active input从指定的模型和属性中获取数据,而在常规输入的情况下,数据是直接指定的。link
Here是一个完整的指南,通过 AJAX (创建和更新)与ajax在弹出式窗口中呈现表单
祝你好运