Как исправить передачу переменной php в вызов ajax?

У меня для этого есть три файла. Мой основной файл php, functions.php, затем мой файл js.

Как передать эту переменную php в js? Вот мой код для моего ГЛАВНЫЙ ФАЙЛ PHP

function ccss_show_tag_recipes() {

global $post;
global $wp;

$html = '';

$url = home_url( $wp->request );
$path = parse_url($url, PHP_URL_PATH);
$pathFragments = explode('/', $path);
$currentPage = end($pathFragments); //I WANT TO PASS THIS TO MY JS FILE


$term_tags = get_terms('cp_recipe_tags'); 
$term_cats = get_terms('cp_recipe_category');

$recipetype = array();
$recipecat = array();

foreach($term_tags as $term) {
    $recipetype[] = $term->slug;
}

foreach($term_cats as $term) {
    $recipecat[] = $term->slug;
}


if ( in_array( $currentPage , $recipecat  ) ) {

        $html = ccss_load_phases($html,$currentPage);

    }

}

Вот функция для css_load_phases ();

function ccss_load_phases($html = '',$currentPage){
     //CODE HERE etc

    $html .= '<div id = "btn-wrapper-'.$termid.'" class = "btn-wrapper"><a id = "'.$termid.'" class = "load-more-btn" href = "#">Load more recipes</a></div>';    

}

Этот код выше предназначен для запуска вызова Ajax. Все, что я могу получить, - это идентификатор кнопки.

Вот код файла AJAX:

(function($) {
    $(document).on( 'click', 'a.load-more-btn', function( event ) {


    var a = $(this).attr('id'); // I CAN ONLY GET THE ID SINCE IT WAS TRIGGERED BY BUTTON CLICK, how to include $currentPage?

    var button = $(this),
            data = {
            'action': 'ajax_loadmore',
            'termID': a
        };



    event.preventDefault();

        $.ajax({
            url: ajaxloadmore.ajaxurl,
            data: data, 
            type: 'post',
            beforeSend : function () {
                button.text('Loading...'); // change the button text, you can also add a preloader image
            },
            success: function( result ) {

                 //console.info(data.post_gallery_imgs);

                $('#cooked-recipe-list-'+a+' ').append(result).fadeIn();
                c
                //alert( result );
            },

            complete: function() {
                button.remove(); // if no data, remove the button as well
                //$('body').find('a#'+a+'').remove();
            }
        })
    })

})(jQuery);

Как передать эту переменную php $ currentPage в мой файл Ajax / Js? так что я могу использовать его здесь:

add_action( 'wp_ajax_nopriv_ajax_loadmore', 'my_ajax_loadmore' );
add_action( 'wp_ajax_ajax_loadmore', 'my_ajax_loadmore' );

function my_ajax_loadmore() {


    $termID = $_POST['termID']; //ONLY THE BUTTON ID WAS RETRIEVED

}

кому-нибудь помочь? Спасибо

ccmanz 23.03.2018 15:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
46
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В вашей функции ccss_load_phases включите скрытый ввод.

function ccss_load_phases($html = '',$currentPage){

    $html .= '<div id = "btn-wrapper-'.$termid.'" class = "btn-wrapper">
        <a id = "'.$termid.'" class = "load-more-btn" href = "#">Load more recipes</a>
        <input type = "hidden" id = "currentPage" value = "'.$currentPage.'" />
          </div>';    

}

Теперь у вас должна быть возможность получить доступ к этому в своем javascript, указав:

$('#currentPage').val(); или это value();

Я обычно записываю значение переменной в скрытый тип ввода, а затем обращаюсь к нему с идентификатором или именем

Основной файл php:

echo "<input type='hidden' value='$currentPage' name='currenPage' id='currentPage'>";

.js файл

 $("#currentPage").val()

Другие вопросы по теме