Как поместить ajax запрос внутрь функции и вызывать ее при необходимости? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть ajax запрос:

$.ajax({
type: 'POST',
url: '/get-result.php',
dataType: 'json',
data: 'pid=' + $(this).attr("id"),
success: function(response) {
$(".reviewee-fname").append(response['fname']);
$(".reviewee-lname").append(response['lname']);
    }     }); };

Я хочу иметь возможность поместить это в функцию, которая ждет, чтобы я запустил ее с обратным вызовом. Я не совсем уверен, как это сказать, я новичок в javascript и jquery. Но в основном я хочу инициировать этот вызов ajax различными нажатиями кнопок, и вместо того, чтобы помещать вызов ajax в каждое событие нажатия кнопки, я хочу поместить его в отдельную функцию, поэтому, если я когда-либо обновлю его позже мне не нужно менять его 5 раз.
Вот пример события click. Я бы хотел вызвать функцию запроса ajax с помощью. Спасибо!

$(function() {
$(".task-listing").click(function() {
//Call Ajax function here.
});
});

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Обратные вызовы хорошо подходят для этого сценария. Вы можете инкапсулировать свой ajax вызов в функцию обратного вызова.

function apiCall() {
$.ajax({
type: 'POST',
url: '/get-result.php',
dataType: 'json',
data: 'pid=' + $(this).attr("id"),
success: function(response) {
$(".reviewee-fname").append(response['fname']);
$(".reviewee-lname").append(response['lname']);
    }     }); };
}

Теперь вы можете перехватить метод apiCall() в качестве обратного вызова для нажатия кнопки.

$(function() {
$(".task-listing").click(apiCall);
});

Таким образом вы сможете добиться этого.

Я хочу поместить его в отдельную функцию, поэтому, если я обновлю его позже, мне не придется менять его 5 раз.

РЕДАКТИРОВАТЬ:

Примечание:

Это приводит к запуску, вы можете изменить это в соответствии с вашими требованиями.

1 голос
/ 29 марта 2020

Это не работает для вас? ↓↓

$(function() {
    $(".task-listing").click(function() {
        let pid = $(this).attr("id"); //get any other value which you want to pass in function, say url
        someFunction(pid);  // pass any other parameters, eg- someFunction(pid, url)
    });
});

function someFunction(pid){  // someFunction(pid, url)
    $.ajax({
        type: 'POST',
        url: '/get-result.php', // url: url
        dataType: 'json',
        data: 'pid=' + pid,
        success: function(response) {
            $(".reviewee-fname").append(response['fname']);
            $(".reviewee-lname").append(response['lname']);
        }     
    }); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...