@OlegSedoy

Как вернуть html в json?

Изобретаю велосипед, осталось только колеса прикрутить. Кнопка загрузить больше. Не могу понять как вернуть html данные.
Скрипт:
$('.more__btn').on('click', function(event) {
		event.preventDefault();


		var exclusion = [];
		var items = $('.products__item').each(function(index, el) {
			exclusion.push($(this).attr('id'));
		});

		var data = {};
		data.action ='ajax_more';
		data.nonce_code = myajax.nonce_code;
		data.el = exclusion;

		console.log(data);
	

		$.post(myajax.url, data, function(data, textStatus, xhr) {
			if ( textStatus == 'success') {
						var response = $.parseJSON(data);
						console.log(response.bar);
						
					} else {
						console.log(textStatus);
					}
				});

	});


Функция ajax
if( wp_doing_ajax() ){
	add_action('wp_ajax_ajax_more', 'more_items' );
	add_action('wp_ajax_nopriv_ajax_more', 'more_items' );

	function more_items(){

		if ( empty($_POST['nonce_code'])) {
			wp_send_json_error([
				'message' => 'Извините, nonce_code не существует!'
			]);
		}

		if ( !check_ajax_referer('9mVb5o3gZLg2wvyKslDzHRJr', 'nonce_code', false )) {
			wp_send_json_error([
				'message' => 'Извините, проверочные данные не соответствуют!'
			]);
		}

		$exclusion = $_POST['el'];

		$args = array(
			'posts_per_page' => 1,
			'post_type' => 'product',
			'post__not_in' => $exclusion
			
		);

		$query = new WP_Query( $args );

		if ( $query->have_posts() ) {
			while ( $query->have_posts() ) {
				$query->the_post();

				$test = get_template_part('/template/loop/loop', 'product'); 
			}
		} else {
			echo "Товаров нет";
		}

		wp_reset_postdata();

		wp_send_json_success([
		"foo" => 'yes',
		"bar" => $test,
		]);


	}
}
  • Вопрос задан
  • 313 просмотров
Пригласить эксперта
Ответы на вопрос 1
попробуйте так
$.ajax({
    url: myajax.url,
    type: 'POST',
    data: data,
    dataType: 'json',
    success: function (d) {
        console.info(d);
    },
    error: function (xhr, type, msg) {
        console.log(xhr, type, msg);
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы