0

这个怎么运作

  1. 我有一个名为的页面,该页面displayRecord.php加载在 JQuery 对话框中。对话框在里面创建editTicket.php

  2. 基本上 displayRecord.php 允许用户添加用户名和 ref id,并通过 AJAX$.post更新数据库并检索相应表中的记录数。

  3. 检索计数器步骤也意味着在页面加载时发生,因此它不仅在用户添加用户名和密码时显示,而且在页面第一次加载时显示。

什么无法正常工作

当 displayRecord.php 页面位于 JQuery 对话框内时(或至少我发现的内容),上面的第 3 步失败。如果我转到 URL,它会在加载时显示计数器。第 2 步在对话框中仍然有效。

从 editTicket.php 调用 JQuery 对话框

<script type="text/javascript">

var dlg = '';
$(document).ready(function() { 

     dlg=$('#ticketDetails').dialog({
        title: 'TICKET DETAILS',
        resizable: false,
        autoOpen:false,
        modal: true,
        show:'fade',
        hide: 'fade',
        buttons:{ "Close": function() { dlg.dialog("close"); } },
        close: function(e, i) { dlg.hide(); },
        width: 1300   
     });


    $('a.view').click(

        function(e) 
            {    
                dlg.load('displayRecord.php?id='+this.id, function(){ 
                dlg.dialog('open');

            });

        });
});

在 displayRecord.php 中加载时调用 showCount 函数:

<?php if (@$data['escalate'] == "No"){ ?>
        <body onLoad="showCount()">
<?php } else{ ?>
        <body>
    <?php } ?>

显示计数功能:

function showCount(){

    var ticket_id = <?php echo $data['id']; ?>

    $.post('escalationCount.php',{post_ticket_id:ticket_id}, 
    function(data) {
    $('#escalationCount').html(data);
    });
}

由于页面加载功能之前的状态似乎没有在 JQuery 对话框内触发。

在这一点上,我正在努力确定问题的根源。请帮忙,谢谢。

4

1 回答 1

1

如果我理解正确(我不确定我是否理解):

$('a.view').click(

    function(e) 
        {    
            dlg.load('displayRecord.php?id='+this.id, function(){ 
                <?php if (@$data['escalate'] == "No") { echo 'showCount();' } ?>
                dlg.dialog('open');

        });

    });

这将在对话框打开时更新计数器。

于 2012-12-30T07:44:14.747 回答