Как передать параметр данных в обработчик ajax-действия
У меня есть следующий js-код для обработки ajax-запроса:
$('#someelement').click(function() {
var cokeValue = 'coke';
var data = {
action: 'load_post',
another_par: someVar
};
jQuery.post(ajax_object.ajax_url, data, function(response) {
alert(response);
});
});
И это мой обработчик ajax-функции (надеюсь, моя терминология верна):
add_action('wp_ajax_get_coke', 'get_coke_ajax');
function get_coke_ajax() {
// нужно получить another_par здесь !!!!!!!
die();
}
Как видите, действие - это load_post, что нормально, но мне нужно передать параметр another_par в мою ajax-функцию, чтобы я мог присвоить его значение переменной и использовать для своих целей.
Когда вы используете jQuery.post(), данные data отправляются как обычные аргументы $_POST.
Так что этот JavaScript …
var data = {
action: 'load_post',
foo: 'bar'
};
… будет доступен в вашей callback-функции через:
$action = $_POST['action'];
$foo = $_POST['foo']; // bar
А когда вы используете jQuery.get(), данные передаются в $_GET. Вы также можете использовать $_REQUEST, который возвращает и GET, и POST данные (а также COOKIE). Но всегда лучше запрашивать конкретный источник данных, чтобы избежать неожиданных инъекций из других источников, например, из cookie.
Извините, мой WordPress экранирует ввод при использовании json_encoded. Добавляются слеши перед символами ".
https://wpartisan.me/tutorials/wordpress-auto-adds-slashes-post-get-request-cookie
Jakob Alexander Eichler