从第一个fancybox类型iframe Codeigniter中的链接打开第二个fancybox类型iframe

时间:2013-07-02 12:22:17

标签: codeigniter fancybox fancybox-2

我使用了fancybox v2.1.5 我有一个layout_popup用于加载这些fancybox的内容。两个fancybox的内容是CodeIgniter中的两个视图文件。
第1步:从页面我有一个按钮,弹出第一个fancybox(类型iframe)。
第2步:从第一个fancybox,我有一个弹出第二个fancybox(类型iframe)的链接。
我完成了第1步。
请告诉我如何执行第2步! 代码layout_popup:

<a id="addmore" class="hand-pointer" onclick="add_more();">Add more product...</a>
<script type="text/javascript">
    function CreateFancyBox(selector, url, width, height) {
        $(selector).fancybox({
            'href': url,
            'titleShow'         : false,
            'titlePosition'     : 'none',
            'openEffect'        : 'none',
            'closeEffect'       : 'none',
            'openSpeed'         : 'fast',
            'type'              : 'iframe',
            'padding'           : 0,
            'preload'           : true,
            'width'             : width,
            'height'            : height,
            'fitToView'         : false,
            'autoSize'          : false,
        }); 
}
    function add_more() {
        var url = base_url + 'ctl_product/add_more_product';
        CreateFancyBox('a#addmore', url, '50%', 205);
    }</script>  

从这里,我点击“添加更多产品...”,弹出第一个fancybox显示,第一个fancybox的内容(来自视图文件):

<div style="background-color: white;">
    <form id="frmAddMoreProd" method="post" action="">
        <table id="tblAddMoreProd" cellpadding="0" cellspacing="10" width="100%" border="0">
            <tr><th><h3 style="margin-top: 0px;">Add new product</h3></th></tr>
            <tr>
                <td>Fill Product Name</td>
                <td><input class="input-short" style="width: 250px;" type="text" id="prodname" /></td>
            </tr>
            <tr>
                <td></td>
                <td class="t-right">
                    <a href="#" class="cancel">Cancel</a>
                    <a id="add_next" class="b-next hand-pointer">Next</a>
                </td>
            </tr>
        </table>
    </form>
</div>

我想在第一个fancybox中单击“Next”链接,然后弹出第二个fancybox显示。代码包含另一个视图文件中第二个fancybox的内容,其代码仍然在div中,与第一个fancybox相同。

我该怎么办?
我尝试将与layout_popup中的脚本相同的js脚本插入到第一个fancybox中,但我没有得到任何结果。

1 个答案:

答案 0 :(得分:0)

要在iframe中打开的视图实际上是控制器内部的方法。您通过构建方法迈出了第一步。对于第二个(iframe)步骤,您只需构建另一个方法并从第一个方法调用第二个方法。我希望我以一种可以理解的方式说:D
这是一个例子:

<?php if (!defined('BASEPATH')) die ('No direct script access allowed!');

class Custom extends CI_Controller
{
    function first_method() {
        // my code
        // ...
        // echo the first view file
    }

    function second_method() {
        // my code
        // ...
        // echo the second view file
    }
}