Php 如何在magento中动态更改价格值

Php 如何在magento中动态更改价格值,php,javascript,ajax,magento,magento-1.7,Php,Javascript,Ajax,Magento,Magento 1.7,我是Magento的初学者。我想使用ajax动态更改产品详细信息页面中的价格值。同时,我还想在购物车页面中计算这个价格值 请参阅此URL: 这个页面包含一个计算器来计算价格值,我还想在购物车页面中动态更改价格。 请参考此图: 任何建议都将不胜感激。第1步-将jQuery包含在page.xml(app/design/frontend/mytheme/default/layout/page.xml)中 jquery/jquery-1.5.2.no-conflict.min.js 步骤2-添加价

我是Magento的初学者。我想使用ajax动态更改产品详细信息页面中的价格值。同时,我还想在购物车页面中计算这个价格值

请参阅此URL:

这个页面包含一个计算器来计算价格值,我还想在购物车页面中动态更改价格。 请参考此图:

任何建议都将不胜感激。

第1步-将jQuery包含在page.xml(app/design/frontend/mytheme/default/layout/page.xml)中

jquery/jquery-1.5.2.no-conflict.min.js
步骤2-添加价格计算php页面(/myscripts/ajaxPriceCal.php)


步骤3-修改层级价格数量文本选项页面(应用程序/设计/前端/mytheme/default/template/catalog/product/view/options/type/text.phtml)

将以下脚本添加到text.phtml页面的最开头

<script type="text/javascript">
$j = jQuery.noConflict();

function get_total_qty(){
    var qty = parseInt(0);
    var qty = $("#calculator_qty").val();
    /*
    * AJAX call
    */
    var quantity = parseInt($j('#qty').val()) + parseInt(qty); // get final quantity
    var product_id = $j('#prod_id').val(); // get product id
    $j.post("/magento/scripts/ajaxPriceCal.php", { qty: quantity, pid: product_id },
        function(data){
            $j('.price').html(data);
    });

}

$j(document).ready(function(){
    $j('.calculate').click(function(){
        if($("#calculator_qty").val()){
            get_total_qty();
        }
    });    
});
</script>

$j=jQuery.noConflict();
函数get_total_qty(){
变量数量=parseInt(0);
变量数量=$(“#计算器数量”).val();
/*
*AJAX调用
*/
var quantity=parseInt($j('#qty').val())+parseInt(qty);//获取最终数量
var product_id=$j('#prod_id').val();//获取产品id
$j.post(“/magento/scripts/ajaxPriceCal.php”,{qty:quantity,pid:product_id},
功能(数据){
$j('.price').html(数据);
});
}
$j(文档).ready(函数(){
$j('.calculate')。单击(函数(){
如果($(“#计算器_数量”).val()){
获取总数量();
}
});    
});

这对你有帮助。您正在更改
价格
值,当您将
添加到购物车
时,它将反映在购物车中

根据您想要更改的标准?谢谢u sahal…我想根据计算值更改我的价格值…例如:-如果我在计算器中得到100美元,意味着我想更改产品价格中的相同值..您能解释一下您的计算器的功能吗?再次感谢u sahal,计算器我想更改产品的数量,并根据数量计算其价格值。我想更改sahal…?请查看下面的anserr。那会对你有帮助的。您正在更改
价格
值,当您
添加到购物车
时,它将反映在cart.hi sahal…我可以创建ajaxpricecal.php页面吗?否则,请说出此页面的路径……。在您的根目录中创建一个
myscript
文件夹。root表示您的
应用程序
皮肤
文件夹所在的位置。将
ajaxpricecal.php
放在
myscript
folder中,看看你可以通过
ajaxpricecal.php
文件中的include
Mage.php
来理解它。嗨,sahal….它工作得很好….非常感谢….我还需要显示它的产品详细信息页啊?…还有什么吗?没有了,你完成了。(我猜你现在在产品详细信息页面工作。在购物车页面,你不需要做任何事情)
<?php
include_once '../app/Mage.php';
Mage::app();

if(isset($_POST['qty']) && !empty($_POST['qty'])){

    $product_id = $_POST['pid'];
    $my_qty = $_POST['qty'];
    $my_price = 0;

    $_product = Mage::getModel('catalog/product')->load($product_id);

    $_tierPrices = $_product->tier_price;

    $_tierPrices = array_reverse($_tierPrices);

    for($i=0; $i < count($_tierPrices); $i++){
        if($my_qty >= $_tierPrices[$i]['price_qty']){
            $my_price = $_tierPrices[$i]['price'];        
            break;
        }
    }

    $calculated_price = $my_price*$my_qty;

    echo number_format($calculated_price,2,'.',',');
}
?>
<script type="text/javascript">
$j = jQuery.noConflict();

function get_total_qty(){
    var qty = parseInt(0);
    var qty = $("#calculator_qty").val();
    /*
    * AJAX call
    */
    var quantity = parseInt($j('#qty').val()) + parseInt(qty); // get final quantity
    var product_id = $j('#prod_id').val(); // get product id
    $j.post("/magento/scripts/ajaxPriceCal.php", { qty: quantity, pid: product_id },
        function(data){
            $j('.price').html(data);
    });

}

$j(document).ready(function(){
    $j('.calculate').click(function(){
        if($("#calculator_qty").val()){
            get_total_qty();
        }
    });    
});
</script>