2015-01-31 72 views
1

所以,我有一個有序的列表,我想用來拉通過ajax的帖子到一個單獨的容器。我知道如何定期通過任何鏈接拖動Ajax,但我試圖完成的是將列表項ID用作ajax pull的過濾器。WordPress的Ajax調用使用鏈接類作爲過濾器

所以,這裏的列表中的一個例子:

<ul> 
<li class="user" id="1">Thana</li> 
<li class="user" id="2">Jim</li> 
<li class="user" id="3">Tom</li> 
<li class="user" id="4">Sam</li> 
</ul> 

在這份清單,分類標識被拉到那種元數據的,在這種情況下,類用戶會涉及到的用戶標識作者,然後列表項的ID將是他們的用戶ID。

我想要的是你點擊一個列表項,然後讓Ajax通過該用戶ID拉出所有帖子,並將內容返回到一個名爲#posts-grid的div。

我假設我必須在Ajax調用之前設置一個變量,但在jQuery/Javascript的這一領域我並不是那麼棒 - 但是再一次,也許我不是即使在這個想法的正確軌道上。

任何幫助將不勝感激。

提前致謝!

喬希

回答

0

你的代碼可能看起來是這樣的:

$(document).ready(function(){ 
    $('.user').click(function(){ 
     var userID = $(this).attr('id'); 
     getUser(userID); 
    }); 

    function getUser(ID){ 
     $.ajax({ 
      url: "<?php echo admin_url('admin-ajax.php'); ?>", 
      data: { 
       id: ID, 
       action: "get_user_posts" 
      }, 
      type: 'POST', 
      error: function() { 
       console.log('error'); 
      }, 
      success: function(data) { 
       //do something with the return data and place it in post-grid 
      } 
     });  
    } 
}); 

在你的functions.php文件,你可以註冊由AJAX調用的函數:

add_action('wp_ajax_nopriv_get_user_posts', 'get_user_posts_callback'); 
add_action('wp_ajax_get_user_posts', 'get_user_posts_callback'); 

function get_user_posts_callback(){ 
    $id = filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT); 
    //echo result 
    die(''); 
} 

你可以在javascript中使用返回的數據將其放置在#post-grid div中。

+0

我將如何設計這樣做的帖子?它會在功能區嗎? – user3741214 2015-01-31 22:29:11

+0

我通常做的是returni我需要從functions.php中的數據轉換爲JSON使用json_encode()在PHP中的數組。在JavaScript中,您使用jQuery.parseJSON()將返回值編碼爲JavaScript對象。之後,我將這篇文章構建爲一個html字符串,並使用jQuery進行追加 – peerbolte 2015-01-31 22:35:44