щелкните радио и значение эха в php (тема WordPress) - PullRequest
1 голос
/ 04 октября 2019

Я использую WordPress AJAX для захвата значения радиовхода при нажатии. Все, что я хочу, это отобразить результат в >>> php <<< в качестве переменной в теме. </p>

Я пытался создать глобальную переменную, но ничего не знаю об этом. И назвать это в тему, не работает.

wp theme

<input class="inputsin" type="radio" name="deporte" value="<?php echo $deporte ?>">

<?php $deporte_name = 'RESULT I WANT TO PRINT HERE'; ?>

<div class="result">NOT HERE</div>

coex.js

(function($){

    $('input[type=radio]').on('click',function(){

        /CAMPOS DE SELECCION/
        var deport = $('input:radio[name=Deporte]:checked').val();
        console.log(deport);


        $.ajax({
            url :dcms_vars.ajaxurl,
            type : 'post',
            data : {
                action:'dcms_ajax_readmore',
                Deporte:deport
            },
            success: function(datos) {
                $('.result').html(datos);
                }
           });
    });
})(jQuery);

functions.php

add_action('wp_enqueue_scripts', 'dcms_insertar_js');

function dcms_insertar_js(){

    wp_register_script('dcms_miscript', get_template_directory_uri(). '/js/conjx.js', array('jquery'),'1',true );
    wp_enqueue_script('dcms_miscript');

    wp_localize_script('dcms_miscript','dcms_vars',['ajaxurl'=>admin_url('admin-ajax.php')]);
}
add_action('wp_ajax_nopriv_dcms_ajax_readmore','dcms_enviar_contenido');
add_action('wp_ajax_dcms_ajax_readmore','dcms_enviar_contenido');

function dcms_enviar_contenido()
{
    $deportphp = $_POST['Deporte'];
       echo $deportphp;
    wp_die();
}

1 Ответ

0 голосов
/ 04 октября 2019

Полагаю, у вас может быть неправильное понимание AJAX. Когда выполняется вызов AJAX, он создает отдельный поток, который отправляет данные на указанный URL-адрес. В случае WordPress он вызовет файл wp ajax, который будет направлен на вашу функцию.

Эта функция будет работать независимо от всего, что работает на вашем сайте, и эхо будет отправлено обратно на ваш вызов AJAX в качестве возврата, и затем этот поток умрет. Поскольку PHP запускается на стороне сервера, а JS запускается на стороне клиента, вы не можете назначать переменные PHP из JS (так как сторона сервера завершит работу до загрузки клиентской стороны).

Если все, что вам нужно, это вставить значение переключателя в разные места в DOM, вы можете сделать это, используя jQuery без вызова AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...