@IT-Programmer

Как выполнить php функцию через ajax и потом вернуть ответ из php?

Я решил создать блог где админ выкладывает всякие разные новости. У каждой новости есть количество лайков и просмотров и когда я нажимаю на кнопку поставить лайк он ставиться, но при этом страница полностью перезагружается. Совсем недавно я узнал что использую ajax можно выполнить php скрипт не обновляя страницу. И у меня возник вопрос "как?". Я перерыл весь интернет, но не нашёл ответ или если находил, то попросту не понимал. Не мог бы кто знает как, написать для меня пример кода и чтобы php возвращал и выводил на страницу данные после выполнения скрипта типа:
<?php
if($like=='1'){
echo 'Лайк поставлен!';
}else{
echo 'Произошла ошибка!';
}
?>
  • Вопрос задан
  • 276 просмотров
Решения вопроса 2
JimmDiGreez
@JimmDiGreez
Full-stack Developer
Ajax используется через js, с точки же зрения бекенда это просто запрос, на который нужно ответить. Конечно, лучше отвечать не версткой, а чем-то удобным и понятным в js коде, например json с данными.
Предлагаю начать отсюда:
https://learn.javascript.ru/fetch

По поводу кода на php, предлагаю такой вариант:
<?php
//... some code about 'like'
echo json_encode($likeProcessingResult);
?>
Ответ написан
Здравствуйте. Все, что Вам нужно сделать - отправить запрос с джаваскрипта на какой-то урл (грубо говоря, страницу). В джаваскрипт файле делаете запрос через XMLHttpRequest (гуглите прямо сейчас статьи от MDN - создателей браузера файрфокс - там всё очень хорошо написано), в этом запросе в коде пропишите json, который передаете серверу с фронта (например, вроде "{"likesCount": 42}"). Например, Вы сделали запрос на php-файл server.php, где у вас есть код с функцией UPDATE (если используете MySQL), который обновляет лайки на статьях. Вам нужно распарсить этот json и вставить likesCount в эту функцию.

А на самой странице, на фронте, Вы в можете выводить лайки как, например,
<span class="likes-count"><?php echo $likesCount ?></span>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@frees2
Как реализовать кнопку Load more в ajax запросе на js?
Из функции отправляем запрос в подгружаемый файл, получаем к примеру новую информацию из ленты какой нибудь сторонней, обрабатываем её и снова посылаем назад, потом можно снова послать обратно...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы