Есть страница категории товаров.
У каждого есть ID - product ['id'], название - product['name'], цена -
product['price'].
У каждого товара есть кнопка <button class="opener"> </button>
Есть html форма, в которую нужно передать название товара и его цену.
Есть скрипт на jquery - использующий какую-то стандартную библиотеку "dialog", который скрывает форму до момента нажатия на кнопку и открывает после нажатия.
Задача: при нажатии на кнопку открывается форма во всплывающем окне, и в соответствующие поля формы записываются значения цены и названия.
Привожу код(с купюрами для экономии места):
Продукт:
<?php foreach ($products as $product) { ?>
<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
<div class="price">
<?php if (!$product['special']) { ?>
<span class="regprice"><?php echo $product['price']; ?></span>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
</div>
<button class="opener">Кнопка</button>
Jquery:
<link href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script>
$( function() {
$( "#form" ).dialog({
autoOpen: false,
width: 500,
title: "Форма",
closeText: "",
show: {
effect: "blind",
duration: 500
},
hide: {
effect: "blind",
duration: 500
}
});
}
$( ".opener" ).on( "click", function() {
$( "#form" ).dialog( "open");
});
} );
</script>
Форма:
<div id="form">
<form action="http://example.com/action.php" method="post">
<input name="itemName" value="##здесь должно быть имя товара##" type="hidden"/>
<input name="itemQuantity" value="1" type="hidden"/>
<input name="itemPrice" value="##Здесь должна быть цена товара##" type="hidden"/>
<input type="submit" value="Submit"/>
</form>
</div>
В данном случае нужно руками проставить значения при отркытии окна, используй селектор по имени, вот пример.
$( ".opener" ).on( "click", function() {
$( "input[name='itemName']" ).val( "Твое наименование" );
$( "input[name='itemPrice']" ).val( "Твоя цена" );
$( "#form" ).dialog( "open");
});
Но лучше испольвать поиск не по имени, а по классу или ID.
<input class="itemName" type="hidden"/>
Или
<input id="itemName" type="hidden"/>
При отрисовке всех элементов сохраняй их необходимые значения в data атрибуты, вот документация и здесь.
<div class="item" data_name="Записываем имя" data_price="Записываем стоимтость"/>
А в при нажатии кнопки забирай значения из текущего элемента c помощью js.
$(".item").click(function(){
var name = $(this).data("name");
var price = $(this).data("price");
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Используя Less можно делать операции над цветами, например darken("red",10%)
Есть меню, которое реализовано на HTML/CSSМне пришла идея сделать его совместно с SVGфильтрами, а конкретно с эффектом "вязкости" (Goo) для каждого...
Как сделать этот синий фон в логотипе, который вылезает слева за wrapper?