wp_send_json erase last value

时间:2017-10-29 作者:steph

我希望你能帮助我。我使用Json将数据从php发送到Javascript。

PHP

add_action(\'wp_ajax_myfilter\', \'evenements_filter_function\'); 
add_action(\'wp_ajax_nopriv_myfilter\', \'evenements_filter_function\');


function evenements_filter_function(){ 
....
        $arrayTest[] = array(
        \'name\' =>$name,
        \'address\' => $address,

        );


    $my_json_str_test = json_encode($arrayTest);
    $params = array(
    \'data\' => $my_json_str_test
    );  
     wp_send_json($params);
}

javaScript

$(\'#filter_evenement\').submit(function(){
jQuery.ajax({
            url:ajaxurl,
            dataType: \'json\',
            data :"&action=myfilter",
            type:"GET", 
            success:function(data){console.log(data);
                var dataArray = jQuery.parseJSON(data);//parse JSON

            },
            fail: function( jqXHR, textStatus, errorThrown ) {  
            }
        });
});
当我提交表单时,我的Json值总是相同的。是否无法更新json数据?我只能发送一次?因为我试图在其他和json数据未更新之后添加另一个wp\\u send\\u json($数组)。如何更新json数据发送?

谢谢你:)

1 个回复
SO网友:Tony M

您不需要在AJAX调用中指定数据类型。此外,WP处理AJAX的方式有点不同,主要是:

$(\'#filter_evenement\').submit(function(){
 jQuery.ajax({
        url:ajaxurl,
        type:"POST", 
        data : {action: "evenements_filter_function", val1: "value1", val2: "values2"},
        success:function(data){console.log(data);
            var dataArray = jQuery.parseJSON(data);//parse JSON

        },
        fail: function( jqXHR, textStatus, errorThrown ) {  
        }
    });
 });
数据必须包含action 它指定了后端中的WP AJAX处理程序函数。您还可以在此处传递需要发送的所有值(例如val1, val2) 你的evenements_filter_function() 没有利用来自AJAX调用的任何数据,它只是发送一个响应。但要访问您要检查的值$_POST[\'val1\'].

结束