这可能吗?我想从 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::CSV和 JSON::Any在将其发送到客户端之前转换为 JavaScript 可以本地解析的格式。
对于这个特定的任务,我可能会完全忘记在客户端执行此操作,而只在服务器上执行所有操作。我看不出将这项工作推给客户有什么好处。 (尽管,不可否认,我不知道所有细节)。
关于javascript - 将 csv 文件加载到 JavaScript 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870505/