Opencart cómo agregar opciones de productos en una pestaña
Frecuentes
Visto 4,392 equipos
0
Carro abierto 1.5.3. Estoy tratando de que las opciones de productos en la página se muestren dentro de una pestaña. Si uso el siguiente código, no obtengo errores y se ve bien, pero hacer clic en Agregar al carrito no hace nada. Si el código está fuera de la pestaña, funciona bien. No estoy seguro de lo que estoy haciendo mal.
<div id="tabs_container">
<ul id="tabs">
<li class="active"><a href="#tab1">tab1</a></li>
<li><a href="#tab2">tab2</a></li>
<li><a href="#tab3">tab3</a></li>
<li><a href="#tab4">tab4</a></li>
</ul>
</div>
<div id="tabs_content_container">
<div id="tab1" class="tab_content" style="display:block"></div><!--tab1-->
<div id="tab2" class="tab_content"></div><!--tab2-->
<div id="tab3" class="tab_content"></div><!--tab3-->
<div id="tab4" class="tab_content">
<?php if ($options) { ?>
<div class="options">
<h2><?php echo $text_option; ?></h2>
<br />
<?php foreach ($options as $option) { ?>
<?php if ($option['type'] == 'select') { ?>
<div id="option-<?php echo $option['product_option_id']; ?>" class="option">
<?php if ($option['required']) { ?>
<span class="required">*</span>
<?php } ?>
<b><?php echo $option['name']; ?>:</b><br />
<select name="option[<?php echo $option['product_option_id']; ?>]">
<option value=""><?php echo $text_select; ?></option>
<?php foreach ($option['option_value'] as $option_value) { ?>
<option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
<?php if ($option_value['price']) { ?>
(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
<?php } ?>
</option>
<?php } ?>
</select>
</div>
<br />
<?php } ?>
<?php } ?>
</div>
</div><!--tab4-->
</div><!--tabs_content_container-->
Aquí está el javascript para el envío de formularios que usa Opencart.
<script type="text/javascript"><!--
$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, information, .error').remove();
if (json['error']) {
if (json['error']['option']) {
for (i in json['error']['option']) {
$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
}
}
}
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
$('#cart-total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
});
//--></script>
1 Respuestas
1
El problema será que el cierre </form>
la etiqueta no estará alrededor del contenido de la pestaña. Tienes que mover el </form>
después de su contenido y eso debería hacerlo
Respondido 05 Jul 12, 13:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas opencart or haz tu propia pregunta.
También estaba pensando en las etiquetas de formulario y me di cuenta de que Opencart parece usar javascript y vincula el botón de envío. Edité mi publicación original con el código javascript. - dinamo
¿Has intentado mover la etiqueta del formulario? También tenga en cuenta que también deben estar en un elemento contenedor con la clase .product-info: jay gilford
He movido la función de vinculación de javascript que publiqué anteriormente, pero no parece importar dónde la coloques, así que la dejo al final de la página. Creo que tienes algo sobre la clase .product-info que está escrita en javascript. Voy a revisar esos divs - dinamo
Jay, lo tengo funcionando ahora. Decidí cambiar .product-info en el javascript a mi contenedor de contenido y funciona perfectamente ahora. - dinamo