データベース内の一時的なレコードの値を返すためにPHP関数を呼び出すAJAX関数がWordPressにあります。
jQueryを使用して関数を呼び出すと、結果が返されますが、値には常に追加の0(ゼロ)が追加されます。
これが私のjQuery関数です:
(function($) {
$(document).ready( function() {
var AdvancedDashboardWidget = function(element, options)
{
var ele = $(element);
var settings = $.extend({
action: '',
service: '',
countof: '',
query: '',
callback:''
}, options || {});
this.count=0;
var url='';
switch(settings.service)
{
case 'facebook':
if(settings.countof=='likes' || settings.countof=='talks')
{
ajaxCall(action,ele,settings);
}
}
};
var ajaxCall = function(action,ele,settings){
opts = {
url: ajaxurl, // ajaxurl is defined by WordPress and points to /wp-admin/admin-ajax.php
type: 'POST',
async: true,
cache: false,
dataType: 'json',
data:{
action: settings.action // Tell WordPress how to handle this ajax request
},
success:function(response) {
//alert(response);
ele.html(response);
return;
},
error: function(xhr,textStatus,e) { // This can be expanded to provide more information
alert(e);
//alert('There was an error');
return;
}
};
$.ajax(opts);
};
$.fn.advanceddashboardwidget = function(options)
{
return this.each(function()
{
var element = $(this);
// Return early if this element already has a plugin instance
if (element.data('advanceddashboardwidget')) return;
// pass options to plugin constructor
var advanceddashboardwidget = new AdvancedDashboardWidget(this, options);
// Store plugin object in this element's data
element.data('advanceddashboardwidget', advanceddashboardwidget);
});
};
});
})(jQuery);
関係するヘルパー関数は他にもありますが、これはWordPressと通信してPHP関数の値を返すメインのjQuery関数です。
問題は、値が「」として返される場合、99
たとえば「」として返されることです990
。
jQueryが呼び出しているPHP関数は次のとおりです。
/**
* Get Facebook Likes
*/
public function get_facebook_likes(){
echo 99;
}
上記を変更するreturn 99;
と、プレーン0を受け取ります