我使用了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中,但我没有得到任何结果。
答案 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
}
}