我在购物车中遇到了问题,当有人增加订购产品的数量时,购物车动态地将文本"产品有库存"更改为"缺货"。
该变量是在PHP中生成的,用于获取产品ID作为变量名,并将库存数量存储到该变量中。当我试图在jquery的。change函数中调用该变量时,问题出现了。
在这里,变量是通过使用产品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而不需要在代码中键入它,从而在if语句中给jquery数字"8"。
是否可以通过输入变量名的第一部分stock_来创建变量名,并让第二部分由变量intProductId创建?希望你能回答我的问题!解决方案
window['your_dynamic_var_name'];
试试这个
var stock_qty = window["stock_"+intProductId];
例2:作为op的要求