我有多个fancybox实例同时工作:
<a class="grupito" href="?id=1#various1">Group 1</a>
<a class="grupito" href="?id=2#various1">Group 2</a>
<a class="grupito" href="?id=3#various1">Group 3</a>
显示以下div:
<div style="display: none;">
<div id="various1">
//Select that shows the people from the group here depending on the id
//of the link with a $_GET['id'] variable (from database)
</div>
</div>
通过此电话:
$("a.grupito").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
});
这对我不起作用。 Fancybox说:“无法加载请求的内容。 请稍后再试。“。如果我摆脱了href的?id = 1部分,它会出现,但它不会有我需要的内容。这是我用fancybox尝试的吗?< / p> 编辑:事实上,用firebug检查它我发现我收到404错误。任何人都可以指出我正确的方向,看看我如何实现这一目标?
答案 0 :(得分:2)
我正在寻找解决方案,但找不到一个。
我正在创建一个待办事项列表,当您点击编辑时,会弹出fancybox,其中包含用于编辑每个待办事项的字段。
我最终找到了一种非常简单的方法。
以下是我编辑项目的链接:
<div class='edit' id='$id'>
<a href='#editItem-$id' class='editLink'>edit</a>
</div>
仔细查看:#editItem-$id
然后这是我正在加载的内容。
$getItemId = mysql_query("SELECT * FROM the_items");
$num_rows = mysql_num_rows($getItemId);
while($row = mysql_fetch_array($getItemId)) {
$this_is_the_id= $row['this_is_the_id'];
$this_is_the_title= $row['this_is_the_title'];
$iteminfo= $row['iteminfo'];
$highlow= $row['highlow'];
$whoto= $row['whoto'];
$finished= $row['finished'];
$date= $row['date'];
echo "<div style='display: none'>
<div id='editItem-$id'>
<div class='item'>
<div class='itembg'>
<div class='title'>
<input type='text' id='title' name='title' value='$this_is_the_title' />
</div>
<div class='controls'>
<div class='edit' id='$id'>
<a href='#editItem-$id'>edit</a>
</div>
<div class='delete' id='$id'>
<a href='?act=delete&id=$id'>delete</a>
</div>
</div>
<div class='item_desc' style='margin-top: 10px;'>
<div class='description'>
<textarea id='description'>$iteminfo</textarea>
</div>
</div>
</div>
</div>
</div>
</div>";
再次,看看这里:editItem-$id
在div上。
出于安全考虑,我删除了正确的信息。
但是,这会引入我想要的内容,因为它们每个都有来自数据库的个人和唯一ID。
答案 1 :(得分:1)
如果我理解您的问题,我认为您可能需要重新考虑您的方法。我不确定你想要通过向你的锚添加?id = 1来实现什么。 Fancybox显示已在页面上加载的内容。一旦HTML页面被渲染并发送到浏览器,PHP就不会对客户端发生的事情发挥作用。
您需要在页面加载时呈现每个框的所有内容,然后在内部链接中引用它们,如下所示。 Fancybox只处理已加载到页面上的内容,因此您需要在初始渲染过程中找出每个框的内容。
<a class="grupito" href="#various1">Group 1</a>
<a class="grupito" href="#various2">Group 2</a>
<a class="grupito" href="#various3">Group 3</a>
<div style="display: none;">
<div id="various1">
//The content from group 1
</div>
<div id="various2">
//The content from group 2
</div>
<div id="various3">
//The content from group 3
</div>
</div>
答案 2 :(得分:0)
您可以使用jquery.load()向服务器发出请求,并将该内容动态加载到一个fancybox div中。