在Ajax PhP代码中传递货币值的动态值

时间:2014-07-14 09:37:36

标签: php ajax

我正在测试以下简单的购物车:

Demo Site

在页面加载时,可以在firebug中看到:

GET http://conceptlogic.com/jcart/standalone-demo/jcart/config-loader.php?ajax=true

(正在调用config-loader.php)。在json输出中可以看出currencyCode是USD。 config-loader.php包含config.php,其中包含一个变量:

 $config['currencyCode'] = '';

并在config-loader.php中:

 // Use default values for any settings that have been left empty
if (!$config['currencyCode']) $config['currencyCode'] = 'USD';

因此,如果在config.php中将货币设置为空白,则默认值设置为" USD"。

如果我硬编码$ config [' currencyCode'] =' GBP'在config.php中,购物车正常显示所有值为GBP。

我的购物页面中有一个货币转换代码,其中包含变量$ curr,其值设置为货币代码,如AUD,GBP等......适用于不同的用户。用户可以选择他的货币,转换后的价值显示在购物车中。

我的购物页面:示例

 <?php
 $curr = "GBP";
 include_once('jcart/jcart.php');
?>

 <form method="post" action="" class="jcart">
 <fieldset>
 <input type="hidden" name="jcartToken" value="<?php echo $_SESSION['jcartToken'];?>" />
 <input type="hidden" name="my-item-id" value="<?php echo $pid ; ?>" />
 <input type="hidden" name="my-item-name" value="<?php echo $product['product_name']; ?>" />
 <input type="hidden" name="my-item-price" value="<?php echo $sp ; ?>" />
 <input type="image" src="AddtoCart.gif" alt="Add to Cart"  value="add to cart" />  
</fieldset>
</form>

我需要在config.php中将currencyCode的值设置为我的购物页面中的值,当用户点击添加到购物车按钮并在页面加载时调用config-loader.php ...

怎么可能......

更新

通过将新货币var 传递给ajax代码

来解决此问题
var config = (function() {
        var config = null;
        $.ajax({
            url: path + '/config-loader.php' + '?curr=' + currency,
            data: {
                "ajax": "true"
            },
            dataType: 'json',
            async: false,
            cache: false,

2 个答案:

答案 0 :(得分:0)

试试这个,

if (!isset($config['currencyCode']) && !empty($config['currencyCode']))   
    $config['currencyCode'] = 'USD';

答案 1 :(得分:0)

如果我假设用户可以从下拉列表中选择货币,可能如下所示:

<select id="currency">
  <option>GBP</option>
  <option>USD</option>
  <option>EUR</option>
</select> 

然后,您希望将他们选择的任何选项传递给PHP脚本。所以,首先,在你的AJAX调用之前的javascript中:

// get the selected option
var currencyChosen = $('#currency').find(":selected").text();

// now pass it to the script
var config = $.ajax({ 
    url: path + '/config-loader.php', 
    data: { "ajax": "true", "currencyCode" : currencyChosen }
    ...
})

将一个名为currencyCode的变量发送到PHP脚本。它将在脚本中使用$code = $_GET['currencyCode'];进行访问。