использование $ jQuery .ajax для вызывания функции PHP

Это может быть простым ответом, но я использую $ 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.

116
задан Johnny Rockex 16 March 2018 в 10:39
поделиться

4 ответа

Используйте $. Ajax , чтобы вызвать контекст сервера (или URL-адрес, или что-то еще) для вызова определенного «действия». Вам нужно что-то вроде:

$.ajax({ url: '/my/site',
         data: {action: 'test'},
         type: 'post',
         success: function(output) {
                      alert(output);
                  }
});

На стороне сервера параметр action POST должен быть прочитан, и соответствующее значение должно указывать на вызываемый метод, например:

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'test' : test();break;
        case 'blah' : blah();break;
        // ...etc...
    }
}

Я считаю, что это простой воплощение паттерна Command .

226
ответ дан 24 November 2019 в 02:15
поделиться

Я бы придерживался обычного подхода для прямого вызова файла, но если вы действительно хотите вызвать функцию, посмотрите JSON-RPC (Вызов удаленной процедуры JSON).

По сути, вы отправляете на сервер строку JSON в определенном формате, например

{ "method": "echo", "params": ["Hello JSON-RPC"], "id": 1}

, который включает функцию для вызова и параметры этой функции.

Конечно, сервер должен знать, как обрабатывать такие запросы.
Вот плагин jQuery для JSON-RPC и, например, Zend JSON Server как реализация сервера на PHP.


Это может быть излишним для небольшого проекта или меньшего количества функций. Самый простой способ - это ответ Карима . С другой стороны, JSON-RPC - это стандарт.

5
ответ дан 24 November 2019 в 02:15
поделиться

Функцию PHP нельзя вызвать с помощью Javascript, так же как и произвольные функции PHP при загрузке страницы (подумайте о последствиях для безопасности).

Если вы должны обернуть свой кодекс в функцию по любой причине, почему не делают вас, любой подверг вызов функции определению функции, например:

function test() {
    // function code
}

test();

Или, используйте PHP, включайте:

include 'functions.php'; // functions.php has the test function
test();
4
ответ дан 24 November 2019 в 02:15
поделиться

Вам нужно будет выставить конечную точку (URL) в вашей системе, которая будет принимать POST запрос от ajax вызова в jQuery.

Затем, при обработке этого URL из PHP, вы вызовете свою функцию и вернете результат в соответствующем формате (скорее всего, JSON, или XML, если хотите).

3
ответ дан 24 November 2019 в 02:15
поделиться
Другие вопросы по тегам:

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