2017-06-16 50 views
0

以下是當有人單擊標籤元素時調用ajax函數的jQuery部分。我想要做的是從標籤元素中獲取數據值,將其傳遞到php函數中,並使用傳入的字符串變量運行php函數。 Jquery部分工作正常,我可以發送數據值,但PHP函數甚至沒有運行,不知道我做錯了什麼。Wordpress AJAX,Jquery部分發送數據但PHP函數不運行

$(function(){ 
    $('#catFilter a').on('click', function(e){ 
    e.preventDefault(); 
    $(this).fadeOut(300); 
    var x = $(this).attr('data-slug'); 
    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; 

    $.ajax({ 
    url: ajaxurl, 
    type: 'post', 
    data: {data: x, action: 'filter'}, 
    success: function(data, status) { 
     console.log(x); 
    }, 
    error: function(xhr, desc, err) { 
     console.log(xhr); 
     console.log("Details: " + desc + "\nError:" + err); 
    } 
    }); // end ajax call 
    }); 
}); 

而PHP部分,我想將數據值從A標記元素添加到PHP數組中,然後使用傳入的參數運行該函數。

function filter(){ 
    $x = $_POST['data']; 
    array_push($needleArray, $x); 
    post_filter(); 
    die(); 
} 
add_action('wp_ajax_filter', 'filter'); 
add_action('wp_ajax_nopriv_filter', 'filter'); 
+0

ajax'type'應該是post方法。另外我強烈建議你不要使用die()命令。 – l0ul0u

+0

我使用它,因爲顯然你在做Wordpress AJAX時需要它在PHP函數中。此外,我改變了類型的方法,似乎仍然沒有工作。 javascript部分的確將數據發送到AJAX.php文件,但在functions.php中的PHP甚至沒有運行似乎。我將它設置爲迴應它收到的任何內容,而且它似乎不會迴應任何內容。 –

回答