Wordpress - Ajax和jQuery.serialize - 如何访问?

时间:2013-09-04 18:55:42

标签: php jquery ajax wordpress

我在我的一个插件中使用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环境中访问nametel作为POST变量,或者这是不可能的,我必须在js文件中创建名称和tel作为值,并且必须将serialize()退出函数?

如果有人之前有过这方面的经验并且可以分享解决方案,那将会很棒。谢谢!

2 个答案:

答案 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

的一个很好的示例