这可能吗 ?我想从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>
Run Code Online (Sandbox Code Playgroud)
使用我添加到此按钮的变量,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);
}
}
Run Code Online (Sandbox Code Playgroud)
在JS文件中此代码之前我需要的是加载csv文件并输出价格和部件号的代码.JS文件将搜索标记为"PartNumber1"的部件号,并从csv文件中输出适当的价格.
请帮忙 !!
这是可能的,但很可能更麻烦,那么它是值得的.
首先,您必须获取CSV数据.这很简单,只要它与站点位于同一服务器上 - XMLHttpRequest就是你的朋友.您可以从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(",");
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以查找所需的部件号:
var getPart = function getPart(partNumber) {
for (var i = 0, j < rows.length; i < j; i++) {
if (row[i][partNumberColumnIndex] === partNumber) {
return row[i];
}
}
};
Run Code Online (Sandbox Code Playgroud)
但是,CSV并不像最初看到的那样简单.
如果任何数据中包含逗号或新行,那么您不能简单地拆分这些字符,因为您必须注意引号字符.
如果我在客户端上有我真正想要处理的CSV数据,那么我会使用Text :: CSV和JSON :: Any转换为JavaScript可以在将其发送到客户端之前本地解析的格式.
对于这个特殊的任务,我可能会忘记完全做客户端,只是在服务器上做所有事情.把这项工作推给客户,我看不出多少好处.(虽然,诚然,我不知道所有的细节).