Я пытался выяснить это уже пару недель, и результаты были весьма посредственными. Из-за недостатка знаний Jquery и минимальных знаний Javascript я собрал несколько кусков кода, найденных в сети, и я уверен, что все неправильно. Я использую Colorbox для отображения продукта с кнопкой «Добавить в корзину» в iframe (родительский и iframe - это страницы, поступающие с моего сервера). Мои желаемые результаты:
(отредактировано для ясности)
- чтобы кнопка добавления в корзину передавала данные формы родителю при отправке.
- закрыть фрейм Colorbox после прохождения формы.
- Родительский фрейм отправляет форму.
До сих пор я использовал следующий код для формы в моем iframe:
<form name="cart_quantity" action="index.php?action=add_product" method="post"
enctype="multipart/form-data" onSubmit="parent.$.fn.colorbox.close();">
<input type="hidden" name="qty" value="1" />
<input type="hidden" name="id" value="7" />
<input type="hidden" name="attri" value="17" id="attri-17" />
<input class="cssButton button" type="submit" value="ADD TO CART"/>
</form>
Мой скрипт, вызывающий colorbox на родительской странице:
<script>
function lightbox(){
$.fn.colorbox({
iframe:true,
onClosed:function(){ window.location = 'index.php?main_page=shopping_cart'; },
href:"./index.php?main_page=product_info&id=7"});
}
</script>
Итак, проблемы до сих пор:
Когда форма отправлена, Colorbox закрывается, и форма отправляется только половину времени (частичный показатель успеха). Я пытался следить за опубликованными данными с помощью firebug, пытаясь узнать, публикуется ли он каждый раз, но, поскольку они поступают из iframe, мне кажется, что я ничего не вижу.
если кто-нибудь может помочь мне разобраться с правильным кодом, я был бы очень признателен!