2013-12-10 4 views
0

Я использую много AJAX вызовов, где я буду говорить,Вызов функции PHP из AJAX?

data: {action: "get_categories", etc..} 

, а затем в моем PHP скажу,

if(isset($_POST['action']) && ($_POST['action'] == 'get_categories')) { 
//do stuff 
} 

Я пытаюсь реорганизовать кодогенератор бит, и я хотел бы сделать вывод одного из этих блоков кода и передать его в другой, но это не функция PHP, поэтому я не совсем уверен, как это сделать? Есть ли способ вызвать функцию PHP непосредственно из вызова AJAX, а не использовать действие?

Кроме того, используя этот стиль кода кода PHP, я должен вызвать код ниже в каждом блоке кода, и я не уверен, почему? Я подумал, что если я поставил его наверху своего php-файла и использовал require_once, который мог бы работать, но ничего не пытаюсь работать, если я не включу их в каждый отдельный блок кода.

require("config.php"); 
require("database.php"); 
+0

Я не вижу каких-либо функций PHP в вашем коде выше? Все выглядит хорошо для меня, не совсем уверен, что вы спрашиваете? – superphonic

+0

вы можете выполнить функцию «непосредственно» через вызов AJAX. например: '$ _POST ['action']();' – onionpsy

+0

@psal О, боже, правда ?! 'POST execute.php HTTP/1.1 \ n \ naction = deleteAllData' – deceze

ответ

1

Нет, вы не можете вызывать функции PHP из клиентского Javascript. Прежде всего, убедитесь, что вы это понимаете: What is the difference between client-side and server-side programming?. Сделав это, вы увидите единственный способ выполнить что-либо на стороне сервера через HTTP-вызов AJAX, который является регулярным запросом для веб-сайта, как и любой другой PHP-скрипт. У HTTP нет понятия «функции» или какой-либо конкретный язык программирования. Вы можете запрашивать URL-адреса с HTTP, ничего более, не меньше. Когда эти URL-адреса запрашиваются, вы можете выполнить PHP-код для обработки этих запросов. Каждый новый запрос полностью независим от всех других запросов, поэтому каждый из них является автономным выполнением скрипта, который требует его собственных включений и требует.

Откройте вкладку сетевого инспектора в инструментах разработки вашего браузера (веб-инспектор Chrome/Safari, Firebug или аналогичный) и следите за тем, чтобы ваши запросы AJAX возвращались на сервер. Это должно иллюстрировать концепцию намного лучше, чем любое объяснение.

+0

хорошо, это имеет смысл, и это то, что я видел из поисковых запросов Google, но я просто чувствовал, что мне что-то не хватает. Пока это так, как должно быть, тогда я хорошо справляюсь с этим. Еще один вопрос ... Как бы вывести переменную из одного из этих блоков кода PHP и использовать ее в другом? – hyphen

+0

Я не понимаю, что последний вопрос. – deceze

+1

Знаешь что, я только понял, что мой следующий вопрос - это чушь. Я пытаюсь представить эти блоки кода как функции, а они просто нет, и мне просто нужно преодолеть это. Спасибо за вашу помощь! – hyphen

Смежные вопросы