通过ajax将mypage.php加载到wordpress中的div中

时间:2013-09-25 22:49:12

标签: ajax wordpress

我有一个在wordpress中工作的ajax加载请求,但我想将其他页面中的内容加载到容器div中。目前它只是将$ dataToSend中的url作为字符串传递?

jQuery(document).ready(function(){

    var $dataToSend = "my-page.php";
    var $testBtn = jQuery('#text-ajax-btn');
    var $holdingCtn = jQuery('#my-holding-ctn');

    $testBtn.click(function(){
        jQuery.ajax({
            type:'POST',
            url: myAjax.ajaxurl,
            data:{
                action:'myAjax',
                dataToSend:$dataToSend,
            },
            success: function(data,textStatus,XMLHttpRequest){
                $holdingCtn.html("");
                $holdingCtn.append(data);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                alert(errorThrown);
            }
        });
    });
});

如何通过$ dataTosend传递整个.php页面?

3 个答案:

答案 0 :(得分:1)

我一直这样做wordpress,给我一秒钟访问我的存储库,我会告诉你示例代码。

我认为问题是你的my-page.php!我想你是自定义编码的。所以它没有加载必要的功能。

将以下代码放在my-page.php的顶部(这将有助于您获得500错误)

require('../../../wp-load.php');

ajax部分看起来像这样:

//start ajax
            $.ajax({
                url: "http://localhost/wp-content/themes/theme/my-page.php",
                type: "POST",
                data: data,
                cache: false,
                success: function (data) {

                    console.dir(data);

                }
            })

答案 1 :(得分:0)

如果要从my-page.php文件加载内容,则可以使用

从服务器端加载
$data = file_get_contents('path/to/file/my-page.php'); // pass right path/url

然后,只需回显函数中的内容(使用add_action在WordPress中注册ajax处理程序),在这种情况下它应该是

echo $data;
die(); // terminate the further execution

所以,它应该看起来像

add_action( 'wp_ajax_myAjax', 'yourAjaxHandler' );
add_action( 'wp_ajax_nopriv_myAjax', 'yourAjaxHandler' );
function yourAjaxHandler(){
    $data = file_get_contents('path/to/file/my-page.php');
    die($data); // echo out the string and terminates execution
}

success回调中,您可以使用

success: function(data){
    jQuery('#my-holding-ctn').html(data);
}

答案 2 :(得分:0)

不确定这是否完全适用,但超级简便的方法就是

$("#myDiv").load("myFile.php?foo=1&bar=2...");