• Решено helekopter

    (@helekopter)


    Добрый день, уважаемые форумчане. Помогите пожалуйста разобраться в коде в котором происходит передача данных (значения) из js в php при использовании ajax. Вот сам код

    // проверяем, не заблокирован ли скрипт с мнимой рекламой
     jQuery(document).ready(function($) {
    // если блок не найден ставим по дефолту значение true
     if ($.adblockJsFile === undefined){
    bar_blocked=true;
    }
    
    // начинаем пляски с бубном и пытаемся передать значение "bar_blocked" при помощи встроенного функционала wordpress (admin-ajax.php)  
    
    jQuery.ajax({
    			type: 'POST',
    			data: bar_blocked,
    			dataType: 'json',
    			url: "/wp-admin/admin-ajax.php",
    			success: function(data){
    				alert(data);
    			}
    		});
                    });
    // создаем простенькую функцию для удобства
    function ad_blockit() {
    // пытаемся получить значения bar_blocked, но безуспешно
    $blocker = $_POST['bar_blocked'];
    if ($blocker == true)
    return true;
    }
    // кидаем стандартные хуки для пользования ajax'ом
    add_action("wp_ajax_ad_blockit", "ad_blockit");
    add_action("wp_ajax_nopriv_ad_blockit", "ad_blockit");

    Большое спасибо.

Просмотр 1 ответа (всего 1)
  • Автор helekopter

    (@helekopter)

    Вопрос решен. Вот рабочий код.

    // Подключаем Jquery и инициируем проверку на существования блока рекламы
     jQuery(document).ready(function($) {
     if ($.adblockJsFile === undefined){
    // Если блок не найден присваиваем статус true
    bar_blocked=true;
    } else {
    // Найден присваиваем статус true
    bar_blocked=false;
    }
    
    // Запускаем ajax
    jQuery.ajax({
    			type: "POST",
    			data: {
    // !Важно, указываем название функции php в которую необходимо передать данные
                    action: 'ad_blockit',
                    bar_blocked: bar_blocked,
    			},
    			dataType: "json",
    			url: "/wp-admin/admin-ajax.php",
    			success: function( response ) {
    		alert( response );
    	}
    		});
    });
    function ad_blockit() {
    // Получаем данные
    $blocker = $_POST['bar_blocked'];
    echo $blocker;
    // !Важно не забыть убить функцию.
    die();
    }
    // !Важно не забыть повесить эти 2 хука. Дабы wp не отправил 0 или пустой ответ
    add_action("wp_ajax_ad_blockit", "ad_blockit");
    add_action("wp_ajax_nopriv_ad_blockit", "ad_blockit");
Просмотр 1 ответа (всего 1)
  • Тема «Передача данных ajax» закрыта для новых ответов.