【问题标题】:Dynamically inserting a bootstrap modal partial view into a view将引导模式部分视图动态插入到视图中
【发布时间】:2015-01-17 07:37:34
【问题描述】:

我有一个很长的 bootstrap 2.32 模态表单(见下文)。我想将其实现为一个单独的局部视图,以动态插入另一个视图的 HTML 中(为了可维护性),但我不确定如何执行此操作。我正在使用 Codeigniter 2.1。

主视图的按钮是:

<div id="thanks"><p><a data-toggle="modal" href="#form-content" class="btn btn-primary btn-large">Modal powers, activate!</a></p></div>

这是我想单独存储为局部视图的内容:

<div id="form-content" class="modal hide fade in" style="display: none;">
    <div class="modal-header">
        <a class="close" data-dismiss="modal">×</a>
        <h3>Send me a message</h3>
    </div>
    <div class="modal-body">
        <form class="contact" name="contact">
             <fieldset>

               <!-- Form Name -->

            <legend>modalForm</legend>

            <!-- Text input-->
            <div class="control-group">
              <label class="control-label" for="user">User</label>
              <div class="controls">
                <input id="user" name="user" type="text" placeholder="User" class="input-xlarge" required="">
                <p class="help-block">help</p>
              </div>
            </div>

            <!-- Text input-->
            <div class="control-group">
              <label class="control-label" for="old">Old password</label>
              <div class="controls">
                <input id="old" name="old" type="text" placeholder="placeholder" class="input-xlarge">
                <p class="help-block">help</p>
              </div>
            </div>

            <!-- Text input-->
            <div class="control-group">
              <label class="control-label" for="new">New password</label>
              <div class="controls">
                <input id="new" name="new" type="text" placeholder="placeholder" class="input-xlarge">
                <p class="help-block">help</p>
              </div>
            </div>

            <!-- Text input-->
            <div class="control-group">
              <label class="control-label" for="repeat">Repeat new password</label>
              <div class="controls">
                <input id="repeat" name="repeat" type="text" placeholder="placeholder" class="input-xlarge">
                <p class="help-block">help</p>
              </div>
            </div>



                </fieldset>
        </form>
    </div>


    <div class="modal-footer">
        <input class="btn btn-success" type="submit" value="Send!" id="submit">
        <a href="#" class="btn" data-dismiss="modal">Nah.</a>
    </div>
</div>

【问题讨论】:

    标签: php jquery twitter-bootstrap codeigniter


    【解决方案1】:

    您可以在任何需要加载“部分”视图的视图中执行此操作。

    $this->load->view('modal_view');
    

    编辑:加载动态内容

    在本例中,我将使用 jQuery AJAX 调用来动态检索视图。

    在您看来,您必须包含一个目标 div 才能插入 AJAX 响应。

    <div id="modal_target"></div>
    

    加载模式并显示的按钮。

    <button type="button" class="btn btn-primary btn-medium" onclick="get_modal();" >Show Modal</button>
    

    发挥作用的 javascript 函数

    <script type="text/javascript"> 
        function get_modal(){
            $.ajax({
                type    : 'POST', 
                url     : '<?php base_url() ?>controler/get_modal',
                cache   : false,
                success : function(data){ 
                   if(data){
                        $('#modal_target').html(data);
    
                        //This shows the modal
                        $('#form-content').modal();
                   }
                }
            });
        }
    </script>
    

    您还必须在控制器中包含在 AJAX 中调用的函数

    public function get_modal()
    {
        $this->load->view('modal_view');
    }
    

    【讨论】:

    • 是的,但是如何仅在按下按钮时动态插入模态?我见过的唯一示例的模态文本已经在基本视图中,但在激活之前是隐藏的。按钮被按下。
    • &lt;div id="form-content" class="modal HIDEfade in" style="display: none;"&gt;这种隐藏使得模态框只有在按下按钮时才可见,在关闭时隐藏。
    • 如果您真的想动态加载它,我可以编辑响应以使用 AJAX 加载它,但问题过于复杂。最后,您将在文档中添加 html。
    • 我明白了,有一个局部视图的主要原因是为了维护和分离,所以我很想看看你是怎么用 JS 做的
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 2013-05-31
    • 2016-05-16
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多