2013-09-16 38 views
2

我有一個PHP文件(loopHandle.php)與WordPress的循環中,我想我的網頁上一個div內加載。AJAX調用包括PHP文件

我就點擊事件使用與$日期的字符串變量調用(「2012-6」),這個變量是我的wordpress環路重要的,因爲我會按日期排序的職位。

我決定邁出這一步一步的,到目前爲止,我的AJAX調用工作,並與變量$日期到我的DIV響應。

這是我看到的東西;在單擊事件我送的變量我想通過使用這個鏈接使用了過來:

$link_url = esc_url(wp_nonce_url(admin_url('admin-ajax.php?&action=dynamic_date&my_date='.$date), "dynamic_date_nonce")); ?> 

我送的動作,現時和自定義變量到WordPress的AJAX處理器(管理員-ajax.php)的然後在我的functions.php中觸發一個函數。這是我實際上對我發送的變量進行處理的地方。

現在,這裏是我面臨的問題,我怎麼給Ajax響應號召,用我發送的,與我的wordpress循環回覆的變量?

一些選項我已經想過:

$wp_loop = if($loop->have_posts()) { 
while($loop->have_posts()) { 
the_post(); 
get_template_part('content', get_post_format()); 
} 
} wp_reset_query(); 
$response = new WP_Ajax_Response(); 
$response->add(array(
'what' => 'fulldate', 
'data' => $wp_loop)); 
$response->send(); 

這是更多的用棍子捅一下,看看會發生什麼辦法。

另一種理論是在我的handleLoop.php中使用$date = $_GET['my_date];,我可以從某個不是functions.php的地方找回我的變量嗎?然後我可以迴應如下:

$loopHandle = include(handleLoop.php); 
$response->add(array(
'what' => 'fulldate', 
'data' => $wp_loop)); 
$response->send(); 

無論如何,我希望我已經正確地表達了我的問題,當然,非常感謝。

編輯:我使用捕捉密鑰對:

s.data = $.extend(s.data, { action: url.action, _ajax_nonce: url._wpnonce, my_date: url.my_date });

+0

你有沒有考慮過使用jquery.val()? – XaxD

+0

呃,沒有。我將如何在這種情況下使用它? – UzumakiDev

回答

0

兩個問題:

1)你如何把你的數據:在jQuery的要求,一定要包括你的約會在數據參數中(你似乎已經通過使用GET語法解決了你自己的問題)。

2)您如何迴應? WP_Ajax_Respond類用於發送XML,可能對您來說太重了,特別是因爲您很可能返回了HTML。

相反,嘗試創建一個PHP陣列來存儲你的每個循環迭代的結果,並json_encode你的陣列,並返回JSON?

http://codex.wordpress.org/AJAX_in_Plugins

+0

感謝您的回覆。我編輯了我的問題以包含用於捕獲日期變量的數據參數。我不知道我如何去做你所說的嘗試。如何將'$ args = array('year'=> $ year,'monthnum'=> $ month);'轉換成json? – UzumakiDev

+0

使用PHP,只需執行以下操作:$ json = json_encode($ args); –

+0

因此,與我提供的wordpress鏈接中的示例類似,不是「echo $ whatever;」,而是「echo $ json;」在你創建它之後。 –