0

我有一个在 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);
            }
        });
    });
});

我如何将整个 .php 页面作为 $dataTosend 传递?

4

3 回答 3

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);

                }
            })
于 2013-09-25T23:26:16.933 回答
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);
}
于 2013-09-25T23:17:32.497 回答
0

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

$("#myDiv").load("myFile.php?foo=1&bar=2...");
于 2013-09-25T23:20:50.070 回答