将参数传递给Yii2中的模态窗口

时间:2017-10-13 18:13:44

标签: yii2

我正在使用下面的代码打开一个模态窗口(modal_top10),现在我需要将一个参数($ manager)传递给这个模态。如何传递此参数?通过URL?

<div class="modal fade" id="myModaltop10" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
    <script>
       function top10(){
          $.ajax({
              type:'GET',
              url:'index.php?r=/client/base/modal_top10',
              success: function(data)
                       {
                           $('#myModaltop10').html(data);
                           $('#myModaltop10').modal();
                       }
          });
       }
    </script> 

3 个答案:

答案 0 :(得分:1)

首先使用以下代码在视图文件夹中创建_modelview文件。让此页面的网址为http://example.com/model/show

<?php
     echo $data;
?>

注意:您必须使用renderAjax()方法为控制器模型中的此视图文件进行渲染

public function actionShow($data)
{
    return $this->renderAjax('_modelview', [
        'data' => $data,
    ]);
}

您可以在模型中将视图文件渲染到

Modal::begin([
    'header' => '<h4>Events</h4>',
    'id' => 'events',
    'size' => 'model-lg',
]);
echo "<div id='modelContent'></div>";
Modal::end();

然后你可以创建jquery文件来显示模型中的数据

$(document).ready(function(){
var eventUrl = "http://example.com/model/show";
var data = "data to be sent in this view url for your case $manager";
$.get(eventUrl, {'data': data}, function(data){
    $('#events').modal('show')
    .find('#modelContent')
    .html(data);
});

答案 1 :(得分:0)

您可以在没有Ajax的情况下实现此功能。

Modal::begin([
    'header' => '<h2>Hello world</h2>',
     'toggleButton' => ['label' => 'click me'],
]);

 echo $manager;

Modal::end();

或者,例如,使用bootbox(http://bootboxjs.com/)。

在控制器中:

public function actionModalContent(){
   $maanager = /*...*/
   return $this->asJson($this->renderAjax('modal_content_view', ['manager'=>$manager]));
}

答案 2 :(得分:0)

我无法关注帖子。我做了以下事情:

<?php
    Modal::begin([
    'header' => "<h4>Top 10</h4>",
    'id' => 'top10',
    'size' => 'model-lg',
    'toggleButton' => [
        'tag' => 'a', 
        'label' => '
        <span style="cursor: pointer;">
            Veja os associados TOP 10 e cadastre sua visita!
            </span>', 
        ]
    ]);
    echo $this->render('_modaltop10', ['manager' => $manager]);
    Modal::end();
?>