我有一个jQuery
函数,它从wp_localize_script
声明中读取值。
<script type='text/javascript'>
/* <![CDATA[ */
var assjs = {"action":"get_ass_counts","path":"http:'/'/localhost'/wordpress-dev'/wp-content'/plugins'/advanced-social-status","_wpnonce":"2f3686b7ca","networks":"fblike,fbshare","ajax_url":"http:'/'/localhost'/wordpress-dev'/wp-admin'/admin-ajax.php"};
/* ]]> */
</script>
我最感兴趣的查询部分是"networks":"fblike,fbshare"
在一个单独的JavaScript文件中,我有这个函数:
AJAX脚本
$('.advanced-social-status form').on('submit', function(e) {
e.preventDefault();
// Array of social networks
var social_networks = [assjs.networks];
// cancel previous requests
if (asswxhr) asswxhr.abort();
$.each(social_networks, function(key){
asswxhr = $.ajax({
type: "POST",
url: assjs.ajax_url,
data:{
action: assjs.action,
_wpnonce: assjs._wpnonce,
network: social_networks,
},
success: function(data) {
console.log(data);
$results.html(data);
},
beforeSend: function() {
$(".ass-fbshare").html('<img style="margin-left:50px;" src="'+assjs.path+'/images/ajax-loader.gif" />');
}
});
});
return false;
});
我试图实现的是获得"networks":"fblike,fbshare"
的每个单独的社交网络函数,我在jQuery中将其引用为assjs.networks
,并循环处理一次。
目前,它将两个社交网络对象都发布到我的PHP脚本中,该脚本处理ajax请求。
PHP脚本
$socialnetwork = trim(stripslashes($_POST['network']));
如果我在PHP处理脚本中var_dump($_POST);
,我会得到以下结果:
array(4) {
["action"]=>;
string(14) "get_ass_counts"
["_wpnonce"]=>;
string(10) "2f3686b7ca"
["network"]=>;
array(1) {
[0]=>;
string(14) "fblike,fbshare"
}
["s"]=>;
string(0) ""
}
有没有一种方法可以分离或分解jQuery
文件中的社交网络名称,使其只传递每个社交网络名称一次?
感谢
您可以对其使用拆分
var social_networks = [assjs.networks];
social_networks = social_networks.split(',');
MDN参考
这不是进行多个ajax调用的最佳方式。请考虑Geohut的建议。