我有一个在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页面?
答案 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...");