Как передать параметр данных в обработчик 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
