从ajax POST函数调用jquery-ui对话框

时间:2013-12-15 14:51:37

标签: javascript php jquery ajax

在我正在进行的项目中,我决定使用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&#039;t be sure. Hopefull I can fix it.
                </td>
            </tr>
        </table>
    </div>

所以,所有的信息都在那里,它只是没有在屏幕上显示任何内容。

1 个答案:

答案 0 :(得分:0)

在jquery对象中包装ajax结果并调用对话框方法:(成功回调)

$(msg).dialog({...});