yii2 Modal的使用


php获取当前控制
$c = Yii::$app->controller->id;

1、这是页面的按钮,中包含了modal 第一个展示了按钮的动态显示,还有引入外部的值
'feedback' => function($url, $model, $key) use ($buttons) {
if(in_array('reg:/^/crm/crmkaihumain/(setfeedback|setfeedbackhtml)$/',$buttons) && !$model->effect_feedback){
return '<a href="javascript:void(0);" onclick="Setfeedbackhtml('.$model->id.')" data-toggle="modal"
data-target="#edit-modal" class="btn btn-xs btn-primary" style="display:block;margin: 10px 0;">效果反馈</a>';
}else{
return null;
}
},


2、页面上线上这个
<?php
Modal::begin([
'id' => 'edit-modal',
'header' => '<h4 class="modal-title"></h4>',
//'footer' => '<a href="#" class="btn btn-primary">确定</a><a href="#" class="btn btn-default" data-dismiss="modal">关闭</a>',
//如果有select2 下拉框, 需要搜索的话,写上下面的
'options' => [
'tabindex' => false
],
]);
$requestUrl = yiihelpersUrl::toRoute($c.'/setfeedbackhtml');
Modal::end();
?>

3、页面上Modal的点击事情,获取请求后端,返回页面
function Setfeedbackhtml (id) {
$('#edit-modal .modal-title').html('销售填写第一个平台的效果反馈');
$.get('/crm/crmkaihumain/setfeedbackhtml', {id:id},
function (data) {
$('#edit-modal .modal-body').html(data);
}
);
}

4、控制器返回页面
/**
* 返回效果反馈的页面
*/
public function actionSetfeedbackhtml()
{
$id = Yii::$app->request->get('id');
$adminuser = new AdminUser();
if (!$id) {
throw new NotFoundHttpException('没有开户id');
}
return $this->renderAjax('feedback',['id'=>$id,'model'=>$adminuser,]);
}
5、返回的页面
<?php
use kartikselect2Select2;
use yiiwebJsExpression;
$c = Yii::$app->controller->id;
?>
<div class="passport-user-form">

<?php
echo Select2::widget([ 'name' => 'title',
'data' => appmodulesadminmodelsAdminUser::getAdminNameMap(),
'options' => ['placeholder' => '请输入运营的名字','id'=>'rr'],
'pluginOptions' => [
'allowClear' => true,
'multiple' => false,
],
]);
?>
<div class="form-group">
<label for="passpord">输入效果反馈</label><br>
<textarea rows="8" cols="70" name="feedback" id="feedback"></textarea>
</div>
<div class="form-group" style="text-align: right;">
<span style="color:red;margn:10px;" class="error"></span>
<a href="javascript:void(0);" onclick = "resetFeedback(<?=$id?>)" class="btn btn-primary" >提交</a>
</div>
</div>
<script>

function resetFeedback(id) {
var operator = $('select[name="title"]').val();
if(operator==''){
$('.error').html('运营必须输入');
$('.error').show();
return false;
}else{
$('.error').hide();
}

var feedback = $('#feedback').val();
if (feedback == '') {
$('.error').html('效果反馈不能为空!');
$('.error').show();
return false;
}else{
$('.error').hide();
}

$.post('<?php echo yiihelpersUrl::toRoute($c.'/setfeedback')?>',{kaihu_id:id,content:feedback,operator:operator},
function (result) {
$('#edit-modal').modal('hide');
if (result['code'] >= 0) {
alert('提交成功')
} else {
alert(result['msg'])
}
}
,'json'
);
}

</script>

原文地址:https://www.cnblogs.com/jjchi/p/9445782.html