Вызов функции 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();
}
}