Как обработать ajax-запрос на php?

Добрый день.

В последнее время часто приходится работать с ajax, по-этому хочу спросить как правильно обрабатывать ajax-запросы.

Как для обработки всех ajax запросов использовать один файл, например ajax.php?

Только например при нажатии на одну кнопку выполняется одна ф-я из файла ajax.php, при нажатии на другую кнопку - другая ф-я и так далее.
  • Вопрос задан
  • 1481 просмотр
Решения вопроса 1
thewind
@thewind
php программист, front / backend developer
1. кидать все запросы на ajax.php
2. к пачке передающихся параметров прикреплять action
3. внутри ajax.php использовать call_user_func_array с указанием метода, построенного на основе action
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@D3lphi
А чем ajax-запрос отличается от любого другого? Правильно, ничем, поэтому обрабатывать его можно так же как и любой другой запрос. Самый примитивный вариант, отправлять вместе с запросом параметр, в зависимости от которого будут выполняться определенные действия.

<?php
$action = $_GET['action']; // Это для примера. Не забываем, что все входные данные нужно обрабатывать.

switch($action) {
    case 'one':
         // Делаем что-то
        break;
     case 'two':
         // Делаем что-то
        break;
}


Это конструкция наиболее простая. Но с ростом количества кейсов, становится громоздка, плохо читаема, поэтому, хорошо бы, написать код, который выполняет все вызовы сам, основываясь на некой конфигурации.
Ответ написан
Комментировать
villiwalla
@villiwalla
HTML-верстка
Шлёшь на адрес данные:
/ajax.php?action=Method&params=data

// А файле
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
    $_GET['action']($_GET['params']);
}

action = функция
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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