Вызов функции php с помощью ajax и передача возвращаемого значения в div

У меня есть функция, которая добавляет социальные кнопки в мои сообщения в блоге, но как только я загружаю больше сообщений, используя 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 ответа

Решение

Насколько я знаю, вы не можете. Что вы можете сделать, так это иметь файл-обработчик для ваших классов, например, скажем, у нас есть этот класс 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, чтобы удовлетворить вас.

Попробуйте вызвать эту функцию social_sharing_buttons() следующим образом в function.php:

$.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();
 }
}
Другие вопросы по тегам