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');
ajax 'type'は投稿のための 'method'である必要があります。また、die()コマンドを使用しないことを強くお勧めします。 – l0ul0u
Wordpress AJAXを実行するときには、PHP関数で必要と思われるので、私はそれを使用しました。また、型をメソッドに変更しても、動作しないようです。 JavaScriptの部分は実際にAJAX.phpファイルにデータを送信していますが、functions.phpのPHPは実行されていないようです。私は受信したものをエコーアウトするように設定し、何もエコーアウトしないように見えます。 –