我有一个功能,可以在我的博客文章中添加社交按钮,但是一旦我使用ajax加载更多帖子,我无法弄清楚如何调用add_social_buttons()并将数据传递给div。
我对ajax并不熟悉,我尝试了这种方法:
$.ajax({
type:"POST",
url:"functions.php",
data: "social_sharing_buttons()",
success: function(data){
$('.pp').html(data);
}
但似乎它试图调用一些完全其他的函数致命错误:调用未定义的函数add_action()。
答案 0 :(得分:1)
据我所知,你不能。您可以做的是为您的类提供一个处理程序文件,例如,假设我们有这个PHP类,
<?php
class Car {
function getCarType() {
return "Super Car";
}
}
?>
然后在你的处理程序文件中,
<?php
require_once 'Car.php';
if(isset($_POST['getCarType'])) {
$car = new Car();
$result = $car->getCarType();
echo $result;
}
?>
您将AJAX请求发布到处理程序,您可以为每个请求创建特定的处理程序,或者您可以拥有一个通用的AJAX处理程序,但是该文件可能会变得非常大且难以维护。
在你的情况下,你有data
,
"getSocialButtons" : true
然后在你的AJAX处理程序文件中,
if (isset($_POST['getSocialButtons'])) {
// Echo your function here.
}
然后你会在if statement
内回显函数,并在你的AJAX请求中使用成功回调做类似的事情。
document.getElementById("yourDivId").innerHTML = data
假设您正在使用ID。调整JS功能以适合您。
答案 1 :(得分:1)
尝试在function.php中调用该函数social_sharing_buttons():
$.ajax({
type:"POST",
url:"functions.php",
data: {action: 'add'},
success: function(data){
$('.pp').html(data);
}
在functions.php中
if(isset($_POST['action']) && !empty($_POST['action'])) {
if($_POST['action'] == 'add') {
echo social_sharing_buttons();
}
}