Jestem stosunkowo nowy w jQuery, aw szczególności w AJAX. Mam mały problem z wartością zwracaną zawsze wynoszącą 0, chociaż myślę, że to właściwie komunikat o sukcesie i nic nie zwraca.
Przeszukałem wersję Google i mam funkcję die () w wywołaniu zwrotnym PHP i uważam, że add_actions są poprawne.
Pracuję na lokalnym hoście, choć wątpię, żeby to wpłynęło i to wszystko w adminie, a nie w interfejsie. Sprawdziłem również, czy js jest kolejkowane i zlokalizowane.
Otrzymuję komunikat 200 OK w obszarze dla programistów chrome.
Przetestowałem również podstawowy AJAX ze strony http://codex.wordpress.org/AJAX_in_Plugins i zwrócił również 0, co sprawia, że zastanawiam się, czy jest to coś innego niż kod opisany poniżej.
W tej chwili próbuję zmusić go do wysłania czegoś z powrotem do jQuery. Każda pomoc będzie mile widziana.
JQuery
jQuery(document).ready(function(){
jQuery('.cl_link_buttons').val('id').click(function() {
var currentid = jQuery(this).attr('id');
//alert(currentid);
console.log(currentid);
jQuery.ajax ( data = {
action: 'cleanlinks_ajax_get_post_data',
url: ajaxurl,
type: 'POST',
dataType: 'text',
"currentid" : currentid
});
jQuery.post(ajaxurl, data, function(response) {
var dataz = response;
alert( dataz );
console.log (dataz); //show json in console
});
return false;
}); //end click event
}); //end doc ready
PHP
add_action("wp_ajax_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");
add_action("wp_ajax_nopriv_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");
function cleanlinks_ajax_get_post_data() {
$from_ajax = $_POST['currentid'];
echo "do" . $from_ajax . "something";
die();
}
jQuery('.cl_link_buttons').val('id').click(function()
wygląda dziwnie.