在文档准备好之后,我想在我的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
}
这可能还是我完全不在路上?你能最后给我一些指示吗?非常感谢。
答案 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调用和操作做好准备。