Как передать параметр данных в обработчик ajax-действия

12 февр. 2014 г., 23:05:37
Просмотры: 63.8K
Голосов: 9

У меня есть следующий 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-функцию, чтобы я мог присвоить его значение переменной и использовать для своих целей.

0
Все ответы на вопрос 1
1
15

Когда вы используете 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.

12 февр. 2014 г. 23:32:50
Комментарии

Извините, мой WordPress экранирует ввод при использовании json_encoded. Добавляются слеши перед символами ".

https://wpartisan.me/tutorials/wordpress-auto-adds-slashes-post-get-request-cookie

Jakob Alexander Eichler Jakob Alexander Eichler
21 июл. 2018 г. 03:41:56