外部csvを配列として扱えるjquery.csv.jsで、csvのデータによって条件に振り分け、htmlを構築する方法。
大量の商品データを格納してある外部csvを読み込んで、例えば、メンズ・レディースで処理を分けたりできるので、htmlがつかえない人でもcsv(Excel)が使えれば更新できるようになります。
※2020/07追記
デモの内容がわかりにくいのと、jquery.csv.jsがバージョンアップされていたので、デモも更新しました。
jQueryでcsv→html関連記事
phpで文字列が数字かどうかを判別するctype_digit
指定時間に自動タイマーで切り替わる!楽天のバナーをcsvで管理する【jQuery】
csvで大量の商品リストを分割して書き出してIEでの処理を早くする方法【jQuery】
【jQuery】IEでajaxで取得したcsvをキャッシュしてしまう問題の対策
jquery.csv.jsで、csvデータをクエリパラメーターで出力htmlを振り分ける
外部csvを配列として扱えるjquery.csv.jsで条件に応じてhtmlを構築する
外部csvを配列で扱える、jquery.csv.jsを用意する
jQueryのプラグインを使ってExcelのCSVを読み込む実験のjquery.csv.jsをお借りしました!
※2020/07追記
この記事を作成時に、お借りしたサイトがリンク切れとなっていました。
現在はGitHubに移動しているようです。
このプラグインはExcelで作ったcsvファイルを配列で処理できる優れものです!リンク先のjquery.csv.jsを保存します。このプラグインを先に読み込まないと動きません。
jquery.csv.jsを読み込む
html
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script> <script type="text/javascript" src="jquery.csv.js"></script>
まずはjQueryを読み込んでください。
次に、jquery.csv.jsも読み込んでください。
外部csvを用意する
今回は以下のような構造のcsvを用意します。
セル番号 | 0 | 1 | 2 |
項目名 | URL | 性別 | リンク文字 |
デモのデータはこちら。
csv
URL,性別,リンク文字 https://mugenweb-note.com/web/,1,メンズシューズ https://mugenweb-note.com/web/,2,レディース財布 https://mugenweb-note.com/web/,1,メンズバッグ
性別は1→メンズ、2→レディースで定義してます。
エクセルで作ったcsvを「itemlist.csv」で保存します。
文字コードはhtmlと合わせてくださいね。
外部csvを、Excelで変更するならS-JISだと思うので、htmlがUTF-8なら文字コードの変更が必要です。
readcsv.jsを用意する
次に実際の処理をするjs、「readcsv.js」を用意します。
上の表のセル番号がthis[?]の数字です。0から始まることに注意!
下のコードをコピーし「readcsv.js」で保存します。
※2020/07追記
jquery.csv.jsがバージョンアップされていたので、readcsv.jsを変更してあります。
JavaScript
$(window).load(function () { function readCsv(data) { var target = '#itemlist'; var csv = $.csv.toArrays(data); var itemlist = ''; $(csv).each(function () { if (this[0].length > 0) { if (this[1] == '1') { var gender = "メンズ"; } else if (this[1] == '2') { var gender = "レディース"; } else { var gender = this[1]; } itemlist += '<tr><td>' + this[0] + '</td><td>' + gender + '</td><td>' + this[2] + '</td></tr>'; } }); $(target).append(itemlist); } var csvfile = './itemlist.csv'; $(function () { $.get(csvfile, readCsv, 'text'); }); })
html
<script type="text/javascript" src="https://code.jquery.com/jquery-1.6.min.js"></script> <script type="text/javascript" src="jquery.csv.js"></script> <script type="text/javascript" src="readcsv.js"></script> <ul id="itemlist"></ul>
これで完成です!
jquery.csv.jsがitemlist.csvを分解してreadcsv.jsで処理する感じになります。
【jquery】常に最新のjsを読み込む方法(getScript)のように最新のcsvファイルを読み込むようにしておくと便利ですよ!

コメント