0

使い方

  1. displayRecord.phpJQueryダイアログボックス内にロードされるというページがあります。ダイアログボックスは内部に作成されますeditTicket.php

  2. 基本的に、displayRecord.php を使用すると、ユーザーはユーザー名と参照 ID を追加でき、AJAX を介し$.postて DB を更新し、それぞれのテーブルのレコード数を取得します。

  3. カウンターの取得ステップは、ページの読み込み時に発生することも意図されているため、ユーザーがユーザー名とパスワードを追加したときだけでなく、ページが初めて読み込まれたときにも表示されます。

うまくいかないこと

上記のステップ 3 は、displayRecord.php ページが JQuery ダイアログ内にある場合 (または少なくともそれが私が発見したこと) に失敗します。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 } ?>

showCount 関数:

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 に答える