我使用Joomla并使用收音机盒选择购买选项。 一切正常,我能够动态更新显示给用户的信息。
我的问题是在选择选项时更新购买链接。我当前用于更新前端的js代码是:
jQuery(function($){
$(document).ready(function(){
$('#pricing').text('R'+'<?php echo (int)$opt1_o_price ?>');
$('#savings').text('R'+'<?php echo $opt1_save ?>');
$('#discount').text(Math.round('<?php echo $perc1 ?>')+'%');
});
$('.item').on('change',function(){
$('#pricing').text('R'+($(this).data('price')));
$('#savings').text('R'+($(this).data('price')-$(this).data('after')));
$('#discount').text(Math.round(100-
($(this).data('after')/$(this).data('price')*100))+'%');
$('input[name=sku]').val($(this).data('sku'));
用于生成链接的代码是:
<a href="<?php echo JRoute::_('my-groupbuy-cart?&task=add_to_cart&id='.$cmgbstore_id).'&option_id=1'; ?>"</a>
我已经可以使用&#34; $ cmgbstore_id&#34;来选择ID。因为它在页面加载时被加载,但我需要能够更改&#34; option_id&#34;在链接的末尾,使用他们在单选框中选择的选项。该值始终为&#34; 1&#34;,&#34; 2&#34;或&#34; 3&#34;。 我的无线电盒代码的一个例子是:
<div class="product-options">
<div class="option-input">
<input id="1" type="radio" value= "1" name="product-option" class="radio item" checked="checked" data-sku="1001" data-price="<?php echo (int)$opt1_o_price ?>" data-save="<?php echo (int)$opt1_save?>" data-after="<?php echo (int)$opt1_d_price ?>" />
</div>
<label for="1" class="option-detail">
<span class="option-title"><?php echo $opt1_title ?></span>
<span class="option-price">R<?php echo $opt1_o_price ?></span>
<span class="option-was-price">R<?php echo $opt1_d_price ?></span>
<span class="option-discount">Save R<?php echo $opt1_save .'.00'?></span>
</label>
我尝试在js中使用append选项,但每次选项更改时,都会添加另一个购买按钮。它也会在页面末尾添加,而不是原始购买按钮的位置。我试过的代码是这样的:
var link = document.createElement('a');
link.setAttribute('href', 'my-groupbuy-cart?&task=add_to_cart&id='+'<?php echo $cmgbstore_id ?>'+'&option_id=1');
link.innerHTML = "BUY NOW";
$('body').append(link);
我可以提供建议,非常感谢任何帮助! 提前谢谢。
答案 0 :(得分:0)
使用我最初问题的回复计算出来。 如果其他人需要它我做了什么:DEMO - https://jsfiddle.net/nbucona8/4/
这比我想象的要简单,但正如@IncredibleHat上面说的那样我需要使用
$( selector ).attr('href','http://new/value');
,所以我做到了:
$( "a[name='buy-button']" ).attr("href","/somelink/"+ dealid +"&option_id="+ $(this).attr("value"));
它返回任何名为“buy-button”的<a>
元素,并将href更改为正确的option_id。
所以我用以下方式拨打购买链接:
<a name="buy-button" href=""> BUY NOW! </a>
每当收音机选项更改时,都会使用以下内容更改option_id:
$(this).attr("value")
在链接的末尾。
感谢所有帮助过的人。