javascript - 将 csv 文件加载到 JavaScript 文件中

标签 javascript

这可能吗?我想从 csv 文件中提取产品的价格,并将该价格与其特定的部件号联系起来。

我正在为一个网站执行此操作,同时我正在学习脚本编程,但我不确定如何执行此操作。

JS 文件将调用 csv 文件并从中提取价格和零件号。

从那里,JS 文件将创建一个与 Paypal 购物车一起使用的表单。

这是“添加到购物车”按钮的 PayPal 购物车代码:

<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="XXXXX">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="PartNumber1">
<input type="hidden" name="amount" >
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="cn" value="Add special instructions to the seller">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="weight" value=".5">
<input type="hidden" name="weight_unit" value="lbs">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHosted">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

使用我添加到此按钮的变量,JS 文件将如下所示:

function CalculateOrder(form)
{

if (form.item_name.value == "PartNumber1"
{
form.amount.value = (The price variable would go here);
}

if (form.item_name.value == "PartNumber2"
{
form.amount.value = (The price variable would go here);
}
}

在 JS 文件中的这段代码之前我需要的是加载 csv 文件并输出价格和零件号的代码。 JS 文件将搜索标记为“PartNumber1”的零件编号,并从 csv 文件输出适当的价格。

请帮忙!!

最佳答案

这是可能的,但很可能会带来更多的麻烦。

首先您必须获取 CSV 数据。这很容易,只要它与站点位于同一服务器上即可 - XMLHttpRequest 是您的 friend 。您可以从responseText 中获取原始CSV。

然后你需要解析它。

如果您有一个非常简单的 CSV 文件,那么您可以首先在新行上分割(以获取每一行),然后在逗号上分割(以获取每一列)。

如果不进行测试,类似这样的事情可能会成功:

var csv = myXHR.responseText;
var rows = csv.split("\n");
for (var i = 0; i < rows.length; i++) {
  rows[i] = rows[i].split(",");
}

然后您可以通过以下方式查找所需的部件号:

var getPart = function getPart(partNumber) {
  for (var i = 0, j < rows.length; i < j; i++) {
    if (row[i][partNumberColumnIndex] === partNumber) {
      return row[i];
    } 
  }
};

但是,CSV 并不是一种简单的数据格式

如果任何数据中有逗号或换行符,那么您不能简单地拆分这些字符,因为您必须注意引号字符。

如果我确实想在客户端处理 CSV 数据,那么我会使用 Text::CSVJSON::Any在将其发送到客户端之前转换为 JavaScript 可以本地解析的格式。

对于这个特定的任务,我可能会完全忘记在客户端执行此操作,而只在服务器上执行所有操作。我看不出将这项工作推给客户有什么好处。 (尽管,不可否认,我不知道所有细节)。

关于javascript - 将 csv 文件加载到 JavaScript 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870505/

相关文章:

javascript - 检查对象 JavaScript 中是否已存在值

javascript - 如何使用 img.src 构建渲染函数

javascript - 使用 JSZip 显示本地 zip 中的图像

javascript - 更改链接不适用于 jquery

javascript - jQuery 隐藏和显示 - 在我单击它之前覆盖图像 "runs"

javascript - 单击动态生成的 div - 没有 ID 和类,使用 jquery 嵌套在静态 div 中

javascript - 根据用户输入过滤 .csv 数据并刷新 d3.js map

javascript - onClick 和操作 html

javascript - Coldfusion 将数据循环到多个列和行中

javascript - 使用 JavaScript 更改列表样式的 onclick