Здравствуйте. Нужна помощь.
Есть Joomla и VirtueMart . Был сделан калькулятор считающий по нужной формуле. Результат выводится в поле . Но при нажатии на кнопку купить естественно в корзину идет цена товара до калькуляции. Калькулятор находится в файле addtocart_form.tpl.php .
Вот код :
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
<div class="vmCartContainer">
<?php
mm_showMyFileName(__FILE__);
// This function lists all product children ( = Items)
// or, when not children are defined, the product_id
// SO LEAVE THIS IN HERE!
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 ) ? $product_parent_id : $product_id );
$price_inf = ps_product :: get_field( $product_id, "price");
$price_base = $price_inf["product_price"];
$discount_inf = ps_product :: get_discount( $product_id );
$price_discount = (!$discount_inf["is_percent"])?$discount_inf["amount"]:
$price_base * $discount_inf["amount"];
$real_price = $price_base - $price_discount;
$product_inf = ps_product :: get_field( $product_id, "product_packaging");
$productS = $product_inf["product_packaging"];
if ($children != "multi") {
if( CHECK_STOCK == '1' && !$product_in_stock ) {
$notify = true;
} else {
$notify = false;
}
?>
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
<?php
}
echo $html;
if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
?>
<?php if ($children != "multi") { ?>
<div style="float: right;vertical-align: middle;"> <?php
if ($children == "drop") {
echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
}
if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
}
$button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
$button_cls = 'addtocart_button1';
if( CHECK_STOCK == '1' && !$product_in_stock ) {
$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
$button_cls = 'notify_button';
}
?>
[b][i]<script type="text/javascript">
function calculate(){
var eId=<? echo $product_id ?>;
var prodConfiguration,prodStacking,prodCount;
var resultValue;
var mInPack = <? echo $productS;?>;
var price = <? echo $real_price;?> / mInPack;
prodCount = new Number( document.getElementById('quantity'+eId).value);
switch(document.getElementById('prodConfiguration'+eId).value)
{
case "unknown":prodConfiguration=-1;break;
case "rectangle":prodConfiguration=0;break;
case "square":prodConfiguration=0;break;
case "trapezium":prodConfiguration=0.02;break;
case "polygon":prodConfiguration=0.05;break;
case "semicircle":prodConfiguration=0.05;break;
case "bow":prodConfiguration=0.05;break;
default: prodConfiguration=-1;break;
}
switch(document.getElementById('prodStacking'+eId).value)
{
case "unknown":prodStacking=-1;break;
case "straight":prodStacking=0.05;break;
case "diagonal":prodStacking=0.1;break;
default: prodStacking=-1;break;
}
if((prodConfiguration == -1)||(prodStacking == -1) || (prodCount < 1))
{
resultValue = "<?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_CALC1')?>";
}
else
{
var P,G;
P=Math.ceil((prodCount + prodCount*prodConfiguration + prodCount*prodStacking) / mInPack);
G = ((P * mInPack)*(price));
resultValue = G;
}
document.getElementById('totalValue').value=resultValue;
}
</script>
<br/>
<div style="vertical-align: middle;">
<label for='<? echo("prodConfiguration$product_id")?>' class="quantity_box"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_NAME')?>: </label><select id='<? echo("prodConfiguration$product_id")?>' name='prodConfiguration' >
<option value="unknown"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO1')?></option>
<option value="rectangle"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO2')?></option>
<option value="square"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO3')?></option>
<option value="trapezium"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO4')?></option>
<option value="polygon"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO5')?></option>
<option value="semicircle"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO6')?></option>
<option value="bow"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO7')?></option>
</select>
</div>
<br />
<label style="padding-left:122px;" for='<? echo("prodStacking$product_id")?>' class="quantity_box"><?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_NAME')?>: </label>
<select name="prodStacking" id='<? echo("prodStacking$product_id")?>' class="medium">
<option value="unknown"><?php echo $VM_LANG->_('PHPSHOP_CART_CONFIG_TO1')?></option>
<option value="straight"><?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_TO1')?></option>
<option value="diagonal"><?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_TO2')?></option>
</select>
<br />
<label for="totalValue" > <?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_NAME0')?>: </label>
<input style="width:64%;" type="text" id="totalValue" class="inputboxquantity" name="totalValue" value='<? echo $real_price;?> '/>
<br />
<?
//echo $ps_product->get_field( $product_id, "name"); ?>
<input type="button" class="<?php echo $button_cls ?>" value="<?php echo $VM_LANG->_('PHPSHOP_CART_STACKING_CALC')?>" onclick="javascript:calculate();" />[/i][/b]<input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
</div>
<?php } ?>
<input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
<input type="hidden" name="page" value="shop.cart" />
<input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
<input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
<input type="hidden" name="func" value="cartAdd" />
<input type="hidden" name="option" value="<?php echo $option ?>" />
<input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
<input type="hidden" name="set_price[]" value="" />
<input type="hidden" name="adjust_price[]" value="" />
<input type="hidden" name="master_product[]" value="" />
<?php
}
if ($children != "multi") { ?>
</form>
<?php
}
if($children == "radio") { ?>
<script language="JavaScript" type="text/javascript">//<![CDATA[
function alterQuantity(myForm) {
for (i=0;i<myForm.selItem.length;i++){
setQuantity = myForm.elements['quantity'];
selected = myForm.elements['selItem'];
j = selected[i].id.substr(7);
k= document.getElementById('quantity' + j);
if (selected[i].checked==true){
k.value = myForm.quantity_adjust.value; }
else {
k.value = 0;
}
}
}
//]]>
</script>
<?php } ?>
</div>
Вопрос : как передать значение
[u] <input style="width:64%;" type="text" id="totalValue" class="inputboxquantity" name="totalValue" value='<? echo $real_price;?> '/>[/u]
для этой кнопки
<input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />