从数据库字段提取字符串的脚本存在问题

问题描述 投票:0回答:1

我做错了什么?

我正在为每个产品编号的每个价格选项生成一个按钮,SQL 数据库中最多可能有 12 个价格选项。效果很好。对于创建的每个按钮,我为 div1price、div2 价格等、div1minorder、div2minorder 等、div1pricequantity、div2 价格数量等生成每个项目变量。因此,当按下价格选项按钮时,它会显示价格、最小订单和最小数量那个特定的尺寸。除此之外,所有工作仅在数据中包含数字时才有效 - 字符串会抛出错误,从而使对象失效。我知道我从根本上做错了什么,但不知道是什么。认为这一定与评估有关!请温柔一点——非常业余的编码员。谢谢你

价格选择 价格 价格数量 最小订单
3英镑 每个 1
5英镑 情况2 2
7英镑 3 1
特大号 9英镑 每个 2
<script>
    $('#divx').attr('id', 'div' + butno);
    price = <% =(price.Fields.Item("itemprice").Value)%>;
    minorder = <% =(price.Fields.Item("minquantity").Value)%>;
    pricequantity = <% =(price.Fields.Item("pricequantity").Value)%>;
    a = ('div' + butno + 'price');
    a2 = ('div' + butno + 'minorder');
    a3 = ('div' + butno + 'pricequantity');
    eval ('var ' + a + '= ' + price + ';');
    eval ('var ' + a2 + '= ' + minorder + ';');
    eval ('var ' + a3 + '= ' + pricequantity + ';');
    butno = butno+1;
   </script>


我已经尝试过上述方法,当涉及所有数字时效果很好。逻辑表明我没有提取字符串。

抱歉,没有包含按钮的点击代码。这是 12 个可能的按钮中第一个的代码。

    <script>
    $("#div1").click(function(){
    $("#bigprice").text('£' + div1price);
    $("#minorder").text('Minimum Order Quantity: ' + div1minorder);
    $("#pricequantity").text('Price Quantity: ' + div1pricequantity);
    });
</script>

为了清楚起见,代码的 a、a2 和 a3 部分生成变量名称,eval 部分将数据库中的值分配给每个变量。可能不优雅,但似乎可以脱离字符串值工作

javascript eval
1个回答
0
投票

正如我在评论中已经提到的,只需将您的价格/小顺序变量括在转义的双/单引号中。一些示例代码

let x = 'test';
let y = 10;

let a1 = 'div' + 1;
let a2 = 'div' + 2;

eval('var ' + a1 + '= \"' + x + '\";');
eval('var ' + a2 + '= \"' + y + '\";');
console.log(div1);
console.log(div2);
© www.soinside.com 2019 - 2024. All rights reserved.