2011-09-16 35 views
1

這是HTML部分:了jQuery,Ajax和問題負載

div id="messages"> 
    <div class="messages"> 


<?php if(isset ($unread)) { ?> 
    <p>You have <?php echo $unread?> unread messages.</p> 
    <?php } ?> 

<?php if(isset ($messages)) { ?> 
     <?php foreach ($messages as $msg){ ?> 
     <div class="col_3">    
<?php  
     if($msg['read'] == 0){ echo 'Status of message: Unreaded';} 
     elseif($msg['read'] == 1){echo 'Status of message: Readed';} 
    echo "<p>Message from: $msg[name]</p>"; 
    echo "<p>Sender email: $msg[email]</p>";   
    echo "<p>Message: <br />$msg[message]</p>"; ?> 
    <a href="#" class="delete" id="<?php echo $msg['id'] ?>">Delete message</a> 
     </div> 
<?php } ?>     
<?php } ?><!-------- end of if $message--------> 
     </div><!------ end of div .messages---------> 
    </div><!------ end of div #messages---------> 

和JQ:

$(".delete").click(function() {  
    var commentContainer = $(this).parent(); 
    var id = $(this).attr("id");    
    var string = 'id='+ id ; 
    $.ajax({ 
     url: "<?php echo site_url('messages/delete') ?>", 
     type: "POST", 
     data: string, 
     cache: false, 
     success: function(){ 
      commentContainer.slideUp('600', function() {$(this).remove(); 
       $('.messages').fadeOut('2000', function(){$(this).remove(); 
        $('#messages').load("<?php echo site_url('messages/show') ?>"); 
       }); 
      });    
     } 
    }); 
    return false; 
}); 

代碼工作,但是當涉及到負載什麼都沒有顯示。我做過

load("<?php echo site_url('messages/show') ?>", function() { 

alert('Load was performed。'); });

並且出現了警報,當我查看頁面源時,我可以看到內容已更改,但未顯示。

回答

0

當您查看通過AJAX加載的頁面源時,它永遠不會更新。您將需要檢查DOM以查看發生了什麼變化。

原因是因爲內容實際上不在頁面上,而是被動態添加到頁面中。

+0

我對JS和JQ相當陌生,所以我迷失了方向。我怎樣才能做到這一點? – Sasha

+0

如果您使用的是FireFox,Google Chrome或Opera。你可以右鍵單擊頁面並在菜單中單擊「檢查元素」,這將調出DOM並向您顯示源的所有「實時」更改。在IE9/8中,您可以按F12啓動開發人員面板。蘋果瀏覽器?誰知道...... –

+0

在Safari中,您需要進入首選項設置>高級>然後勾選「在菜單欄中顯示製作菜單」。然後當你右鍵點擊你可以看到「Insepect Element」 –