2013-12-15 111 views
0

在我正在開發的一個項目中,我決定使用jQuery UI dalog模式來讀取消息。 重點在於使頁面不會刷新。我可以調用對話框如果我使用:從ajax POST函數調用jquery-ui對話框

<?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> 

因此,所有的inf ormation在那裏,它只是不顯示任何東西在屏幕上。

+0

這樣剛剛成立的Ajax請求的成功回調你的代碼。你的問題是什麼?好吧,我明白了,你不是將元素附加到DOM,所以你的選擇器返回空對象。您可以嘗試成功回調:'$(msg).dialog({...});' –

+0

問題是,它不顯示對話窗口。我已經嘗試將UI函數放在成功回調中,但無濟於事。 – Seker

+0

這工作完美!你可以發佈答案,以便我可以標記正確嗎? – Seker

回答

0

總結jQuery對象內的ajax結果,並呼籲其對話的方法:(在成功回調)

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