Wordpress AJAX:获取Json响应函数

时间:2016-10-23 14:07:52

标签: php jquery json ajax wordpress

在文档准备好之后,我想在我的Ajax调用中获得一个Json响应函数。我不确定我是否采用了正确的方式,但到目前为止,这是我所做的:

我的Html

<!--Where i want to load my function-->
<div id="applications"></div>

我的Ajax / Jquery

jQuery(document).ready(function(){
    init_applications();
});
function init_applications(){
    var app_data = new FormData();
    app_data.append('action', 'applications');
    app_data.append('uid', uid);
    app_data.append('pid', pid);
    jQuery.ajax({
        method: 'post',
        url: ajaxurl,
        dataType: 'json',
        data: app_data,
        processData: false,
        contentType: false,
        beforeSend:function(data){
            //something
        },
        success:function(data) {
            $('#applications').html(data.htmlapp);
            //console.log(data);
        },
        error: function(data){
            //console.log(data);
        }
    });
    //alert("a");
}

当然在我的 functions.php

add_action('wp_ajax_applications', 'applications');
function applications(){
    $uid = $_POST['uid'];
    $pid = $_POST['pid'];
    $applications = inside_applications();
    $response = array('htmlapp'=>$applications);
    wp_send_json( $response );
}

最后我总是在 functions.php

中创建了我的单独函数
function inside_applications(){
   //Some html code and instructions
}

这可能还是我完全不在路上?你能最后给我一些指示吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

之前的所有推理都很好,只需要在你想要的函数中返回值或html。在我的情况下是。

function inside_applications(){
   //Some html code and instructions
   $html = '<div class="something>everything</div>';
   $html .= '<div class="solved">solved</div>';
   //Insert some if or instructions
   return $html;
}

正如评论wp_send_json()中所讨论的那样,钩子已经print()die()所以没有必要再做任何事了。也许还有其他更好的方法可以实现这一目标,但我的目标是Ajaxify一个Wordpress主题,并让单独的多个函数可刷新,并为我的jQuery调用和操作做好准备。