我有这个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
的每个社交网络功能$socialnetwork = trim(stripslashes($_POST['network']));
并循环并处理它一次。
目前,它将社交网络对象发布到处理ajax请求的PHP脚本。
PHP脚本
var_dump($_POST);
如果我在PHP处理脚本中array(4) {
["action"]=>;
string(14) "get_ass_counts"
["_wpnonce"]=>;
string(10) "2f3686b7ca"
["network"]=>;
array(1) {
[0]=>;
string(14) "fblike,fbshare"
}
["s"]=>;
string(0) ""
}
,我会得到以下结果:
jQuery
有没有办法可以分离或拆分{{1}}文件中的社交网络名称,这样它只会传递一次EACH社交网络名称?
由于
答案 0 :(得分:2)
你可以使用拆分
var social_networks = [assjs.networks];
social_networks = social_networks.split(',');
这不是制作多个ajax调用的最佳方法,请考虑Geohut建议。