如何在服务器端解析JSON编码对象(PHP代码)寻找帮助(在wordpress中)?

时间:2017-11-21 03:56:57

标签: php jquery json ajax wordpress

虽然我经常搜索,但我无法得到具体答案

客户端代码

jQuery(document).ready(function() {
   jQuery("#p_button").click ( function () {
   console.log("button got clicked");
   var donor_data= [ "12","13","14" ];
   var damount = 1234;
   var donor_obj = {
       id : donor_data,
       amnt : damount,
   };
   jQuery.ajax({
       type:"POST",
       dataType : "json",
       url: myAjax.ajaxurl,
       data: { action : "my_action",
              'donors' :  JSON.stringify(donor_obj),
             },
       success:function(response){
                   console.log("success " );
                   //console.log("success " + JSON.parse(response));
                   jQuery("#d_amount").val(donor_data[0]);
                   jQuery("#p_button").text("brrr");
                },
       error: function(response) {
                   console.log("error" + response);
              },
       });
       });
});

服务器端代码

function ajx_add_donations () {
        global $wpdb;
        $adv_don=json_decode($_REQUEST['donors']);
        //$adv_don = json_decode($_POST['donors']);
        //echo json_encode("phani");
        //echo json_encode($result);
        $dtype = 'OFFLINE';
        $d_status = 'PENDING';
        $ddate = current_time( 'mysql' );
        $donation_e = array (
                        'UID' => $adv_don->id[0],
                        'STATUS' => $d_status,
                        'PMODE'  => $dtype,
                        'AMNT'   => $adv_don->amnt,
                        'DDATE'  => $ddate
                );

                $d_id = update_donation_entry($donation_e);
                echo json_encode("<h3> Thank you for Contribution <strong>$amount</strong></h3>");

        wp_die();

}

需要信息

  1. 当我点击按钮,如何在服务器端解析Json数据(数组)时,我无法看到我的数据库被更新?
  2. 有没有办法知道我在服务器端收到的内容,如果我使用“echo”打印变量,它会被发送到ajax客户端?
  3. 如果对#2的回答是“否”,如何在客户端解析JSON数据?

1 个答案:

答案 0 :(得分:0)

试试这个

    jQuery(document).ready(function() {
       jQuery("#p_button").click ( function () {
       console.log("button got clicked");
       var donor_data= [ "12","13","14" ];
       var damount = 1234;
       var donor_obj = {
           id : donor_data,
           amnt : damount,
       };
       jQuery.ajax({
           type:"POST",
           //dataType : "json",
           url: myAjax.ajaxurl,
           data: { action : "ajx_add_donations",
              'donors' :  JSON.stringify(donor_obj),
             },
           success:function(response){
               console.log("success " ,response);
               //console.log("success " + JSON.parse(response));
               //jQuery("#d_amount").val(donor_data[0]);
               //jQuery("#p_button").text("brrr");
            },
           error: function(response) {
               console.log("error" + response);
              },
           });
           });
    });



    function ajx_add_donations () {


    global $wpdb;
        $adv_don=json_decode(stripslashes($_REQUEST['donors']));
        //$adv_don = json_decode($_POST['donors']);
        //echo json_encode("phani");
        //echo json_encode($result);
        $dtype = 'OFFLINE';
        $d_status = 'PENDING';
        $ddate = current_time( 'mysql' );
        $donation_e = array (
                    'UID' => $adv_don->id[0],
                    'STATUS' => $d_status,
                    'PMODE'  => $dtype,
                    'AMNT'   => $adv_don->amnt,
                    'DDATE'  => $ddate
            );

            $d_id = update_donation_entry($donation_e);
            echo json_encode("<h3> Thank you for Contribution <strong>$amount</strong></h3>");

        wp_die();

    }

    add_action( 'wp_ajax_ajx_add_donations','ajx_add_donations' );
    add_action( 'wp_ajax_nopriv_ajx_add_donations', 'ajx_add_donations');