使用ajax调用php函数并将返回值传递给div

时间:2015-08-07 13:11:35

标签: php jquery ajax

我有一个功能,可以在我的博客文章中添加社交按钮,但是一旦我使用ajax加载更多帖子,我无法弄清楚如何调用add_social_buttons()并将数据传递给div。

我对ajax并不熟悉,我尝试了这种方法:

$.ajax({
  type:"POST",
  url:"functions.php",
  data: "social_sharing_buttons()",
  success: function(data){
  $('.pp').html(data);
  }

但似乎它试图调用一些完全其他的函数致命错误:调用未定义的函数add_action()。

2 个答案:

答案 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();
 }
}