我在我的一个插件中使用wordpress内置的ajax实现,如下所示:
jQuery('#form_data_voting').submit(function() {
jQuery.post(
ajax_object.ajax_url,
{
action : 'voting_save',
value : jQuery('#form_data_voting').serialize(),
},
function(data) {
alert(data);
}
);//get
});
PHP中的函数如下所示:
add_action('wp_ajax_voting_save', function () {
var_dump($_POST['value']);
die();
});//wp_ajax_voting_save
然后我在转储中看到所有相关字段都在一个字符串中 - 感谢serialize()函数。但问题在于,它存储在"值"变量,我不能把它拿出来。字符串如下所示:name=testname&tel=3883838
。我无法通过$_POST['name']
或$_POST['value']['name']
访问该名称。
如何在wordpress ajax环境中访问name
和tel
作为POST变量,或者这是不可能的,我必须在js文件中创建名称和tel作为值,并且必须将serialize()
退出函数?
如果有人之前有过这方面的经验并且可以分享解决方案,那将会很棒。谢谢!
答案 0 :(得分:5)
感谢VukBG - 我的例子不是parse_url
,但是parse_str
就足够了:
parse_str($_POST['value'], $my_array_of_vars);
print_r($my_array_of_vars);
答案 1 :(得分:0)
尝试parse_url()功能。我认为这就是你要找的东西。
您还可以看到此功能here
的一个很好的示例