Это может быть простой ответ, но я использую jQuery $ .ajax для вызова PHP-скрипта. Я хочу просто поместить этот PHP-скрипт внутри функции и вызвать PHP-функцию из javascript.
<?php
if(isset($_POST['something'] {
//do something
}
?>
к этому
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
Как мне вызвать эту функцию в javascript? Сейчас я просто использую $ .ajax с указанным файлом PHP.
Ответы:
Используется
$.ajax
для вызова контекста сервера (или URL-адреса, или чего-то еще) для вызова определенного «действия». Вам нужно что-то вроде:На стороне сервера
action
параметр POST должен быть прочитан, и соответствующее значение должно указывать на вызываемый метод, например:Я считаю, что это простое воплощение паттерна Command .
источник
Я разработал плагин jQuery, который позволяет вам вызывать любую базовую функцию PHP или даже определенные пользователем функции PHP в качестве методов плагина: jquery.php
После включения jquery и jquery.php в заголовок нашего документа и размещения request_handler.php на нашем сервере мы начинаем использовать плагин описанным ниже способом.
Для простоты использования обратитесь к функции простым способом:
Затем инициализируйте плагин:
А теперь несколько сценариев использования:
Демонстрация объединения функций PHP:
Демонстрация отправки JSON-блока псевдокода PHP:
Конфигурация серверной части предоставляет белый список, поэтому вы можете ограничить, какие функции могут быть вызваны. Есть еще несколько шаблонов для работы с PHP, описанных плагином.
источник
Я бы придерживался обычного подхода к вызову файла напрямую, но если вы действительно хотите вызвать функцию, взгляните на JSON-RPC (JSON Remote Procedure Call).
Вы в основном отправляете на сервер строку JSON в определенном формате, например
который включает функцию для вызова и параметры этой функции.
Конечно, сервер должен знать, как обрабатывать такие запросы.
Вот плагин jQuery для JSON-RPC и, например, Zend JSON Server в качестве реализации сервера на PHP.
Это может быть излишним для небольшого проекта или меньшего количества функций. Самым простым способом был бы ответ Карима . С другой стороны, JSON-RPC - это стандарт.
источник
Вы не можете вызвать функцию PHP с помощью Javascript, так же как вы не можете вызывать произвольные функции PHP при загрузке страницы (просто подумайте о последствиях для безопасности).
Если вам по какой-либо причине необходимо обернуть свой код функцией, почему бы вам не поместить вызов функции под определение функции, например:
Или используйте PHP include:
источник
Вам нужно будет предоставить и конечную точку (URL) в вашей системе, которая будет принимать запрос POST от вызова ajax в jQuery.
Затем при обработке этого URL-адреса из PHP вы должны вызвать свою функцию и вернуть результат в соответствующем формате (скорее всего, JSON или XML, если хотите).
источник
Вы можете использовать мою библиотеку, которая делает это автоматически, я улучшал ее последние 2 года http://phery-php-ajax.net
JavaScript был бы прост, как
Вы можете передать всю динамическую часть javascript на сервер с помощью построителя запросов, такого как цепочный интерфейс, и вы можете передать любой тип данных обратно в PHP. Например, некоторые функции, которые занимают слишком много места на стороне javascript, могут быть вызваны на сервере с помощью этого (в этом примере mcrypt, что в javascript было бы почти невозможно выполнить):
и на сервере
Теперь у него
variable
будут зашифрованные данные.источник