通过组合两个变量名来创建jquery变量

时间:2014-08-08 11:53:45

标签: php jquery variables

我在使用购物车时遇到问题,当有人增加订购产品的数量时,动态更改“库存产品”中的文本“缺货”。

在PHP中生成变量以将产品ID作为变量名称,并将库存量存储到该变量中。当我尝试在.change函数中调用jquery中的变量时,我的问题出现了。

此处,变量通过使用产品ID创建。

    <script>
    var stock_<?php echo $arrCartItem['intProductId']; ?> = "<?php echo $arrCartItem['intStock']; ?>";
    </script>

在HTML输入字段中,数据正在发送到javascript:

<td><input type="number" value="' . $arrCartItem['intQuantity'] . '" min="1"     class="cartQuantity" data-cartid="'.$arrCartItem['cartId'].'" data-productid="'.$arrCartItem['intProductId'].'" /></td>
例如,当产品2223被添加到购物车时,这会创建stock_2223,并在其中存储数字8,即库存中的产品数量。

现在我试图在.change函数中调用它:

$('.cartQuantity').change(function(){

var curThis      = $(this);
var intQuantity  = $(this).val();
var intCartId    = $(this).data('cartid');
var intProductId = $(this).data('productid');

if (intQuantity > stock_XXXX) 
{
    // not enough in stock
    alert("not enough in stock");
}
else {
    alert("enough in stock");
}

当我尝试类似的事情时:

var intProductId = "stock_"+intProductId;

导致jquery返回字符串“stock_2228”而不是包含“8”的变量。

我的问题是,如何将stock_XXXX替换为购物车中商品的编号,在这种情况下,我会在没有在代码中进行物理输入的情况下获得stock_2223,从而给出jquery中的数字“8”。 if statement。

是否可以通过键入变量名称stock_的第一部分来创建变量名称,并让第二部分由变量intProductId创建? 希望你能回答我的问题!

1 个答案:

答案 0 :(得分:1)

解决方案

window['your_dynamic_var_name'];

试试这个

var stock_qty = window["stock_"+intProductId];

<强> Example

Example 2 : 作为操作要求