我在使用购物车时遇到问题,当有人增加订购产品的数量时,动态更改“库存产品”中的文本“缺货”。
在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创建? 希望你能回答我的问题!
答案 0 :(得分:1)
解决方案
window['your_dynamic_var_name'];
试试这个
var stock_qty = window["stock_"+intProductId];
<强> Example 强>
Example 2 : 作为操作要求