b_e_m
@b_e_m
Front-End Dev

Как передать кликнутый продукт за границы цикла?

Всем привет, у меня проблемка, есть цикл:
<?php foreach ($products as $product) { ?>
    <?php } ?>

в котором выводятся продукты, за границами цикла есть темплейт под модальное окно, как можно передать в это окно кликнутый продукт? что-то типа $this
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 2
mannaro
@mannaro Куратор тега JavaScript
Умею профессионально гуглить
Клики - это JS. Отрисовка - это PHP. Не смешивайте их.

Если уж совсем надо, то как-то так:
<?php foreach ($products as $product) { ?>
  <div onclick="showPopup('<?php echo json_encode($product) ?>')">Click Me!</div>;
<?php } ?>


Или хранить где-то в коде product и передавать его в popup по ссылке.
Ответ написан
Комментировать
bagiroff777
@bagiroff777
Веб-разработчик
Php:
<?php foreach($products as $index => $product): ?>
	echo '<div class="product-popup" data-popup="<?=$index?>"><?=$product->description; ?></div>';
<?php endforeach; ?>


Js:
<script>
	$(".product").on("click", function(e){
		var div = $(this);
		$("#modal-content").load(div.attr("/products/detail?id=" + div.attr("data-popup")));
		$("#modal-div").modal("show");
	}):
</script>


Html:
<div id="modal-div" class="modal in" role="dialog">
	<div class="modal-dialog modal-lg">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
			</div>
			<div class="modal-body">
				<div id="modal-content"></div>
			</div>
		</div>
	</div>
</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы