我在我的PM系统中使用Colorbox。点击“收件箱”链接,打开彩盒并通过ajax加载收件箱页面。收件箱页面显示用户消息的链接标题。单击它,应该在同一个颜色框中打开read_message页面。不幸的是,事实并非如此。每当我点击链接时,它只会打开框外的页面。
我尝试了不同的东西,但没有任何爱。任何帮助将不胜感激!
一段javascript(如果你需要Colorbox.js的整个javascript,请让我知道!)
$(document).ready(function(){
$("#ajax").colorbox({ajax:true, width:"500px", height:"450px"});
});
点击$ newMessages或$ noNewMessages后打开Colorbox的页面
<div class="pageHeader">
<p class="title"><?php echo $myAccount ?></p>
<a class="viewMessages" id="ajax" href="message/inbox.php">
<?php
if (mysqli_num_rows($getAmountMessages) > 0 ) {
$row = mysqli_fetch_array($getAmountMessages);
if($row['message_read'] == 0){
echo $newMessages;
} else {
echo $noNewMessages;
}
}
?>
</a>
</div>
收件箱页面 - 点击链接标题应打开Colorbox中的read_message.php文件
//Select messages in db
$getMessages = mysqli_query($mysqli,"SELECT * FROM messages WHERE recipient = '".$_SESSION['user_id']."' ORDER BY message_id DESC");
$numMessages = mysqli_num_rows($getMessages);
//Message(s) available for user
if (mysqli_num_rows($getMessages) > 0 ) {
echo '<ul>';
for($count = 1; $count <= $numMessages; $count++)
{
$row = mysqli_fetch_array($getMessages);
//Show if a message is still new
if($row['message_read'] == 0)
{
echo '<a id="ajax" href="message/read_message.php?messageid='.$row['message_id'].'">'.$row['message_title'].'</a>(NEW MESSAGE)<br>';
}else{
echo '<a id="ajax" href="message/read_message.php?messageid='.$row['message_id'].'">'.$row['message_title'].'</a><br>';
}
}
echo '</ul>';
//No message(s) available for user
}else{
echo ("<p class='messagesinfo'>Er zijn geen nieuwe berichten</p>");
}
谢谢。
答案 0 :(得分:1)
点击邮件(链接)时,您告诉浏览器重定向到该链接,这将导致新页面加载。
相反,你需要通过javascript调用$ .colorbox。 更改您的链接:
<a id="ajax" href="message/read_message.php?messageid='.$row['message_id'].'">'.$row['message_title'].'</a>
到
<a id="ajax" onclick="showMessage($row['message_id'])">'.$row['message_title'].'</a>
在您的Javascript中添加以下功能:
function showMessage(id) {
$.colorbox({href:"message/read_message.php?messageid=" + id});
}
希望这有帮助!