2009-05-15 20 views
0

これは可能ですか?私はCSVファイルから製品の価格を引き出し、その価格を特定の部品番号に結びつけたいと思っています。JavaScriptファイルにCSVファイルをロード

私はウェブサイトでこれをやっていますが、同時にスクリプトプログラミングを学習していますが、これを行う方法がわかりません。

JSファイルはcsvファイルを呼び出し、価格と部品番号を取り除きます。

そこからJSファイルが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ファイルから適切な価格を出力します。

お問い合わせください!

+0

価格情報を実際に読み込んでいる場合は、ユーザーが値を変更できないように、サーバー側で行う必要があります。いずれか、または価格が改ざんされていないことを保証するサーバー側の検証が必要です。 –

答えて

5

可能性はありますが、それ以上に問題が発生する可能性があります。

まず、CSVデータを取得する必要があります。これは、サイトと同じサーバー上にある限り、簡単です.XMLHttpRequestはあなたの友人です。生のCSVをresponseTextから取得することができます。

次に解析する必要があります。

非常にシンプルなCSVファイルをお持ちの場合は、まず最初に新しい行(各行を取得する)とコンマ(各列を取得する)に分割できます。このようなものは、トリックを行う可能性がありますテストすることなく

、:

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

あなたは、あなたがしたい部品番号のために見ることができる:しかし、CSVは同じくらい簡単ではありません

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

最初のデータ形式はです。

いずれかのデータにカンマまたは改行が含まれている場合は、引用文字を監視する必要があるため、これらの文字を分割することはできません。

クライアントで実際に処理したいCSVデータがある場合は、Text::CSVJSON::Anyを使用して、JavaScriptをクライアントに送信する前にネイティブで解析できる形式に変換します。

この特定のタスクでは、私はおそらくクライアント側をすべて忘れて、サーバー上のすべてを行うことを忘れています。私はクライアントにこの仕事を押し進めることに多くの利益を見ることができません。 (確かに、私はすべての詳細を知らないが)。

+0

「CSVは、最初に見たような単純なデータ形式ではない」と言ったときには正しいでしょう。幸いにも、私はちょうどそれを扱うことができるライブラリを終了しました。 http://code.google.com/p/jquery-csv/。 –

0

CSV RFCのトリッキーな部分をサポートするJavaScript CSVパーサーが必要な場合は、my implementation of a parserをご覧になりたいかもしれませんが、ちょっとだけクリーンアップする必要がある最初のバージョンです。

+0

参考までに、リンクは無効です。 –

関連する問題