Мне нравится метод Криса, но я думаю, что могу немного улучшить. Поскольку у вас уже есть 3 отдельных объекта, чтобы уменьшить потребность в перекодировании, вы можете сделать что-то вроде объединения PHP в один файл с помощью include 'page.php'
и отправки объекта обратно через JSON со свойствами, названными для каждого из них. (скажем, «имена», «даты» и «нечеткие вещи»). Ваш клиентский код для отправки запроса будет просто содержать все аргументы, которые отправляются вашими 3 функциями по отдельности и отправляются в одном запросе. Возвращенный JSON будет выглядеть примерно так (поместите ваши объекты / массивы / что угодно в закомментированные области):
{
"names" : {/*stuff needed for names goes in here*/},
"dates" : {/*stuff needed for dates goes in here*/},
"fuzzyThings" : {/*all fuzzy things goes in here*/}
}
Как только вы получите это на стороне клиента, так как я предполагаю, что у каждого из них уже может быть функция (или набор функций) для обработки возвращаемых данных, вы сможете вызывать их следующим образом:
function handler(retText) {
var returnedObject = eval(retText);
doStuffWithNames(returnedObject.names);
doStuffWithDates(returnedObject.dates);
playWithFuzzyThings(returnedObject.fuzzyThings);
}
Кроме того, на стороне PHP вы можете создать единую страницу PHP (без надежды на перекодировку) с помощью:
<?php
echo '{';
echo '"names":{';
include 'names.php';
echo '},';
echo '"dates":{';
include 'dates.php';
echo '},';
echo '"fuzzyThings":{';
include 'fuzzyThings.php';
echo '}';
echo '}';
?>
Примечание: Возможно, вам придется отредактировать 3 страницы php, чтобы они правильно проверяли $ _POST и не влияли на функциональность других страниц, если вы этого еще не сделали, я предпочитаю метод if(isset($_POST['whatever'])) { ... }
, чтобы проверить, что все было отправлено правильно, таким образом, вы можете включить столько, сколько хотите, и если нет никакого отношения к файлу php (т.е. вы не используете этот раздел на этой странице), то он будет верните пустое свойство, и вы просто не будете его использовать (по сути, делая его "универсальным").
Надеюсь, у тебя все получится!