了解WordPress函数中的AJAX JSON POST响应

时间:2017-02-27 01:38:52

标签: php jquery json wordpress post

我是第一次在WordPress中测试ajax。我想在用户点击按钮时使用“POST”发送ID和字符串。我需要ID的值来更新我的数据库以及用于条件语句的字符串的值。既然WordPress有自己的方式来使用ajax,那么我必须尝试测试代码是否符合我的要求。

Jquery - custom-js.js:

$(function() {
        $(".deal-vote-button").click(function(){
            var prodID = $(this).attr('productID');
            var voteType = $(this).attr('id');

            $.ajax({
                url: customajaxscript.ajax_url,
                type: 'POST',
                dataType: 'json',
                data:{
                    action: 'productvote',
                    id: prodID,
                    productvote: voteType
                },
                success: function( response ){
                    alert('Got this from the server: ' + response);
                },
                error: function( error ){
                    alert('Error');
                }
            });
        });
    }); 

PHP - custom-functions.php:

/* Custom AJAX functions */
function my_ajax_resource() {
    wp_enqueue_script('my-jquery',get_template_directory_uri().'/js/custom-js.js', array('jquery'));
    wp_localize_script( 'my-jquery', 'customajaxscript', 
    array('ajax_url' => admin_url( 'admin-ajax.php' )));
}
add_action('wp_enqueue_scripts', 'my_ajax_resource');

/* AJAX function for voting system */
function productvote(){
    $productID = isset($_POST['id']) ? $_POST['id'] : null;
    $productVoteType = isset($_POST['productvote']) ? $_POST['productvote'] : null;
    echo $productVoteType; // Could be echo "test" or anything else for testing purposes.
    die(); 
}

这是我的问题。如果我尝试echo包含字母的任何内容,我会在响应中出错。如果我echo4324321233个数字,我会收到包含响应的提醒,这意味着代码有效。我的问题是:

1 - 当我echo包含除数字之外的任何字符串的字符串时,我的代码导致错误有什么问题?

2 - 如果我想从$_POST检索数据并将其与两个不同的变量相关联,那么我使用的方法是否正确?

3 - 当我执行代码时,我似乎得到了一个双重警告弹出窗口,可能是什么造成的呢?

请注意,我以前没有使用WordPress中的JSON和AJAX,因此,这对我来说都是新手。

0 个答案:

没有答案