2010-04-21 54 views
0

嘗試將外部php文件加載到另一個onClick。由於內容大小隨可摺疊面板的變化而變化,因此iframe不起作用。這留下了AJAX。我得到了一段代碼將動態外部內容加載到點擊的另一個

HTML

<a href="#" id="getData">Get data</a> 
<div id="myContainer"></div> 
JS 

$('#getData').click(function(){ 
    $.get('data.php', { section: 'mySection' }, function(data){ 
     $('#myContainer').html(data); 
    }); 
}); 
PHP: 

<?php 
    if($_GET['section'] === 'mySection') echo '<span style="font-weigth:bold;">Hello World</span>'; 
?> 

我在這裏測試它http://www.divethegap.com/scuba-diving-programmes-dive-the-gap/programme-pages/dahab-divemaster/divemaster-trainingA.php並得到最意想不到的結果。它肯定會加載正確的數量的項目,因爲它在Safari瀏覽器的低級欄中表示,但我看到三個小日曆,就是這樣。任何人都可以看到我犯了什麼錯誤嗎?

回答

2

首先第一件事情,你想擁有現成功能$(document).ready(function(){..}內的jQuery位。在您的測試頁面中,頂部已經有一個準備就緒的函數,其中包含行$('a[rel*=facebox]').facebox(),因此您可能希望將代碼放在那裏。

其次,你想阻止鏈接轉到缺省操作,即加載url'#'。你用preventDefault()方法做到這一點。

我測試並確認下面的代碼應該爲你工作:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#getData').click(function(event){ 
     event.preventDefault(); 
     $.get('test.php', { cat: 16 }, function(data){ 
     $('#myContainer p').html(data); 
     }); 
    }); 
});</script> 

你可以找到更多的細節和jQuery's get function here例子。

相關問題