Задать вопрос
Dunno2018
@Dunno2018

Как применить ajax к счетчику на php?

Здравствуйте.
Есть счетчик, добавленных в избранное, объектов. Пример
Если нажать на иконку:
5daf62cba237d481397208.png
Объект добавится в избранное:

5daf63280071c538020156.png
Но подсчет добавленных объектов работает только после перезагрузки страницы. Как применить ajax? Код счетчика:
<?php
$favorites_url = inspiry_get_favorites_url(); // Favorites page.
if ( ! empty( $favorites_url ) ) :
	
	$favorite_properties = array();

	if ( is_user_logged_in() ) {
		$user_id             = get_current_user_id();
		$favorite_properties = get_user_meta( $user_id, 'favorite_properties' );
	} else {
		if ( isset( $_COOKIE['inspiry_favorites'] ) ) {
			$favorite_properties = unserialize( $_COOKIE['inspiry_favorites'] );
		}
	}

	$number_of_properties = count( $favorite_properties );

	// My properties arguments.
	$favorites_properties_args = array(
		'post_type'      => 'property',
		'posts_per_page' => $number_of_properties,
		'post__in'       => $favorite_properties,
		'orderby'        => 'post__in',
	);

	$favorites_query = new WP_Query( $favorites_properties_args );

		$my_post_count = $favorites_query->post_count;
		$my_post_found = $favorites_query->found_posts;
		
	?>
	<a href="<?php echo esc_url( $favorites_url ); ?>" class="rh_modal__dash_link">
		<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 21">
			<path class="rh_svg" d="M1089.48,1923.98a6.746,6.746,0,0,1,9.54,9.54L1089,1943l-10.02-9.48a6.746,6.746,0,0,1,9.54-9.54A0.641,0.641,0,0,0,1089.48,1923.98Z" transform="translate(-1077 -1922)"></path>
		</svg>
		<span><?php if ( $number_of_properties > 0 ) { echo '<span class="sub">' . $my_post_count . '</span>';} ?></span>
	</a>
<?php	endif; ?>
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
document.eddEventListener('click', function(evt) { // при клике
  if (evt.target.matches('.btn-add-to-favorites')) { // проверяем, был ли клик по кнопке добавления в избранное
    // здесь отправка через xhr или fetch
  }
})

примеры использования fetch
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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