在我正在进行的项目中,我决定使用jQuery UI dalog模式来阅读消息。 重点是使它没有页面刷新。如果我使用的话,我可以调用对话框:
<?php if (isset($_GET['var'])) ?>
但这意味着重新加载页面设置$ _GET []值。
这两个功能都是分开工作的。我的问题是如何从Ajax调用中成功调用对话框函数。
我使用对话框显示消息:
$(function() {
$( '#dialog-modal' ).dialog({
show: { effect: "fade", duration: 400 },
hide: { effect: "fade", duration: 400 },
modal: true,
title: "Reading Message",
dialogClass: "no-close",
buttons: { "Close Message": function() { $(this).dialog("close"); } },
position: { my: "top", at: "top", of: window },
width: 500
});
});
此函数将数据发送到PHP页面,在该页面中提取消息信息:
function message_popup(messageID, userID)
{
$.ajax({
type: 'GET',
url: 'actions.php?type=readmessage',
data: 'messid=' + messageID + '&user=' + userID,
async: false,
success: function(msg){
console.log(msg);
}
});
}
在控制台中,它显示它正在提取正确的信息,甚至显示整个DIV元素,如下所示:
<div id='dialog-modal'>
<table style='width: 480px;'>
<tr>
<td style='width: 20%; text-align: left;'>
Sender:
</td>
<td style='text-align: center;'>
Admin
</td>
</tr>
<tr>
<td style='width: 20%; text-align: left;'>
Subject:
</td>
<td style='text-align: center;'>
No Subject
</td>
</tr>
<tr>
<td style='width: 20%; text-align: left; vertical-align: top;'>
Message:
</td>
<td style='text-align: center;'>
Just trying to see why the enter is showing up so weird. I guess it could be something to<br />do with the escaping method but I can't be sure. Hopefull I can fix it.
</td>
</tr>
</table>
</div>
所以,所有的信息都在那里,它只是没有在屏幕上显示任何内容。
答案 0 :(得分:0)
在jquery对象中包装ajax结果并调用对话框方法:(成功回调)
$(msg).dialog({...});