2011-10-10 173 views
0

我正在製作一個帶有2個鏈接的日曆,一個回到一個月,另一個回到一個月。基本ajax獲取請求

這是我cal.php文件:

<div class='cal_wrapper' id='cal'> 
<?php 
    echo "<a href='cal.php?month=m&year=y'>Prev Month</a>"; 
    echo "<a href='cal.php?month=m&year=y'>Next Month</a>"; 

    echo $calendar; 

?> 
</div> 

我試圖做的是使用jquery/AJAX更新有什麼cal_wrapper DIV中,而無需刷新頁面。我看起來很難,但找不到任何不使用HTML表單就可以完成的例子。我怎樣才能通過GET請求,月,年送2個變量,應該是相當basic..but我要去交目光炯炯試圖找到對互聯網絡的東西..

回答

1

首先給你的鏈接類

echo "<a class='month_selector' href='cal.php?month=m&year=y'>Prev Month</a>"; 
echo "<a class='month_selector' href='cal.php?month=m&year=y'>Next Month</a>"; 

然後,只要單擊其中一個鏈接,就將ajax請求的內容加載到包裝div中。

可以使用.load使用#wrapper_div

$('#cal_wrapper a.month_selector').live('click', function(e){ 
    $('#cal_wrapper').load($(this).attr('href') + ' #wrapper_div'); 
    e.preventDefault(); 
}); 

加載頁面片段

$('#cal_wrapper a.month_selector').live(function(e){ 
    $('#cal_wrapper').load($(this).attr('href')); 
    e.preventDefault(); 
}); 

編輯,讓您的包裹DIV cal_wrapper在#wrapper_div和上面的代碼僅加載包裝div的內容。由於您正在動態插入鏈接,因此請使用直播而不是點擊。

+0

Thanks..didn't工作雖然?? – DanielOlivasJr

+0

看看你的控制檯,你有什麼樣的錯誤,如果有的話? –

+1

問題是類屬性中的雙引號。 – onatm

0

只是糾正上面的答案。你需要使用jquery方法「live」,因爲cal_wrapper div的內容會改變(每當你點擊'next/prev'鏈接時)

把下面的內容放在「主文件」中。第一次加載(內部準備就緒)將加載第一個月和第一年。

<script type="text/javascript"> 

$(document).ready(function() { 
    $('.call_wrapper').load('cal.php?month=m&year=y'); 

    $('.cal_wrapper a.pagination').live('click', function(){ 
     var link = $(this).attr('href'); 
     $('.cal_wrapper').load(link); 
     e.preventDefault(); 
    }); 
}); 

</script> 

<div class='cal_wrapper' id='cal'></div> 

和你cal.php(從裏面取出div標籤)

<?php 
    echo "<a class="pagination" href='cal.php?month=m&year=y'>Prev Month</a>"; 
    echo "<a class="pagination" href='cal.php?month=m&year=y'>Next Month</a>"; 

    echo $calendar; 
?> 
+0

在您提供的JavaScript上獲取錯誤。 未捕獲SyntaxError:意外令牌} homepage_cal_test.php:18未引用ReferenceError:$未定義 – DanielOlivasJr

+0

將jquery包含在js標籤之前(在iframe內) –

+0

這是,仍然不起作用。順便說一句在我的主頁上,我已經包含了cal.php頁面。我沒有使用iframe。感謝您的幫助。 – DanielOlivasJr