使用wp_end_json返回Html

时间:2015-03-17 作者:strattonn

我不知道如何通过AJAX正确返回HTML。

我有这个惯例

function DisplayEventInfoBox()
{    ?>
    <div id="eventInfo">
    <div class="avail-from cart-right">

    <?php   
    and so on...
}
如果我在一个AJAX调用中包含这个,并且例程的结尾是die(),那么响应对象包含HTML,我可以随意使用它。

function myAJAXFn() {
    DisplayEventInfoBox($my_page, $shipHelper);
    die();
}
我想发送其他信息,例如使用wp\\u send\\u json\\u success或其他变量。

这段代码返回HTML,并将JSON数组附加到末尾。我想创建一个JSON对象,在这里我可以访问我的页面属性和html。最好的方法是什么?

function myAJAXFn() {
    DisplayEventInfoBox($my_page, $shipHelper);
    wp_send_json_success( array(\'page\'=>$myPage) );
}

1 个回复
最合适的回答,由SO网友:czerspalace 整理而成

我不知道$my\\u page、$my\\u page或$shipHelper变量应该做什么,但您可以使用输出缓冲区来捕获DisplayEventInfoBox函数的输出。您可以尝试以下操作:

function myAJAXFn() {
    ob_start();
    DisplayEventInfoBox($my_page, $shipHelper);
    $my_html = ob_get_contents();
    ob_end_clean();
    wp_send_json_success( array(\'page\'=>$my_html) );
}

结束

相关推荐

不允许访问wp-admin,但允许在前端完成admin-ajax请求?

我有一个网站,要求用户有一个帐户才能使用它。我不希望某些用户角色有权访问wp admin。所有帐户更改都应在前端帐户管理模板上进行。如果用户试图访问wp admin,我想将其重定向回站点主页。function redirect_user(){ //...some code... //Have tried: //if(empty(DOING_AJAX) && $users_role ==\'somerandomrole\') //th