javascriptは1年生です^^
データバインドを利用して、テーブルにデータを表示しています。
document.write("<object id='setData' classid='clsid:333C7BC4-460F-11D0-BC04-0080C7055A83'>");
document.write("<param name='DataURL' value='setdata.csv'>");
document.write("<param name='UseHeader' value='true'>");
document.write("</object>");
document.write("<table border='1' datasrc='#setData'>");
document.write("<tr>");
document.write("<td><span datafld='data1'></span></td>");
とこんな感じで続くのですが、csvファイルのデータには、セル幅や背景色等の設定値も含まれています。
これらのデータは表示用のデータではないので、変数として取込まなければなりません。
普通なら、bodyタグの中に、
<input type="hiden" datafld="optionData1">
と書いて、そこからjavascriptで取込むことは可能ですが、document.writeを使うとbodyタグの中が書き換わってしまうので使えません。
(csvファイルの1行分のデータを、HTMLのテーブルで表示する時には、4行~6行と行数が変動するので、予めテーブルをbodyタグの中に書いておくことが出来ません。テーブル行数はスクリプト内で決定するので。なのでbodyタグの中は空でオールjavascriptでHTMLを生成しています)
もう一つの方法はフレームを使って、parentで、データを送ることも考えたのですが、もっとスマートな方法はないでしょうか??
No.5ベストアンサー
- 回答日時:
データバインドで色々調べてみました。
以下のようにすると変数(配列)に格納できそうです。
お試し下さい。
前提は6フィールドの内、
3フィールドを表示(data1~data3)、
残り3フィールド(data4~data6)を配列に格納する場合です。
<script>
function start(){
setData.Reset();//リセット
var rs = setData.recordset;
data=new Array();
for(i=0;i<rs.RecordCount;i++){
data[i]=new Array();
data[i][0]=rs.Fields("data4").value;
data[i][1]=rs.Fields("data5").value;
data[i][2]=rs.Fields("data6").value;
rs.MoveNext();
}
setData.Reset();//リセット
//格納されたか確認
for(i=0;i<rs.RecordCount;i++){
alert(str=data[i].toString());
rs.MoveNext();
}
setData.Reset();//リセット
}
</script>
<body onload="start()">
<object id="setData" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="setdata.csv">
<param name="UseHeader" value="true">
</object>
<table datasrc="#setData" border="1">
<tr>
<td><span datafld="data1"></span></td>
<td><span datafld="data2"></span></td>
<td><span datafld="data3"></span></td>
</tr>
</table>
</body>
更なるご回答ありがとうございます。
別なページを用意しなくても出来そうですし、これが一番スマートかも知れませんね。
(URLを使ってデータを転送することを試みたのですが、出来ることは出来ましたが、データ丸見えでスマートじゃありませんでした^^;)
このスクリプトを参考にさせていただきます。なんとか解決の糸口が見えてきそうです!
ありがとうございました。
No.4
- 回答日時:
カレンダーということなのでデータは恐らく日~土の7カラムの行が少ない場合で4行
多い場合は6行。このデータと各日ごとにカスタマイズする表示形式の指示が同じCSV上
に書かれてるという理解でよろしいでしょうか。
>それで設定画面を別に作り、CGIで幅や背景色等の設定値をcsv形式で保存するようにし
CGIでデータを書き出す際に、日にちのデータと表示のデータを切り分け、
日にちのデータはCSV、表示形式は最大31要素の2次元配列としてjsファイルに書き出す
ようにCGIを書き換えれば一番簡単化かなと思います。
それが無理なら表示要素のデータを右によせてdisplay:noneで非表示
tableの子要素のinnerTextから非表示列の表示データを拾いあげて配列に格納する。
データバインドではなく、隠しインラインフレームにCSVをplaintextとして読込んでカンマで切り分け、
変数に配列として格納するクラスを提供している方がいますので
下記URLもご参照ください。
参考URL:http://www5c.biglobe.ne.jp/~horoau/js_library/da …
ご回答ありがとうございます。
ちょっと忙しくなって、ご提案いただいた方法について検証する時間がなく、お返事が遅くなってしまいました。
display:noneで非表示するというアイデアは思いつきませんでした。いいかも知れませんね^^
参考URLを見てみましたが、面白そうなので時間のあるときに勉強してみたいと思います。
No.3
- 回答日時:
各人のパソコンの設定如何では使用不能ですね。
セキュリティホールを開けなければならないので。
なぜ CGI が普及したのか、教科書の最初の3ぺージ程度を読んで
理解し、納得し、CGI の習得に励むのが最もスマートでしょう。
ご回答ありがとうございます。
CGIは自分で作ることは出来ないものの、簡単な改造程度なら、なんとか・・・なんですが^^
今回の設定値のcsvファイルの保存に関しても、<< のところを < にして上書き保存にしたりとか・・・
そんなわけで、最初からCGIで出来れば一番なのは分かっているのですが^^;
CGIについては是非習得したいと思っています。
No.1
- 回答日時:
質問の内容が曖昧で何を聞きたいのかが良く分かりません。
そもそもCSVに表示しないdataを含ませる意味がわかりません。
セルの幅や背景色ならCSSまたはjsの外部ファイルに切り分ければ済む事と思いますが。
この回答への補足
云わば、「カレンダー・メーカー」なるものと考えて下さい。CGIで色々探したのですが、合うものがありませんでした。
(会社によっては水曜日が休日でもカレンダーの色が赤にならない等)
それでjavascriptで作ることになりました。CGIとかは出来ませんので^^;
javascriptがクライアント側で動作するため、設定したものが、他のPCでは反映されずに初期値で表示してしまいました。当然ですね^^;
それで設定画面を別に作り、CGIで幅や背景色等の設定値をcsv形式で保存するようにし、見る側は、どのパソコンでも同じ設定で見えるようにしたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
Tableの枠線(内・外)色を変更
-
Table内TDの子要素を移動させた...
-
javascriptで画像をテーブルに...
-
画面表示とともに、テーブルの...
-
javascript でテーブル操作
-
return trueとreturn falseの用...
-
Selectの中身をfor文で入れる
-
プルダウン選択を変更すると、...
-
【jQuery】input nameの文字列...
-
ラジオボタンにタブインデック...
-
複数のsubmitボタンで押された...
-
onClickとsubmitの処理順序
-
3桁区切りのカンマをつけたい...
-
プルダウン 項目が多いので先頭...
-
submitした値を返したい
-
データベースの値を判断してラ...
-
全てのselect要素をデフォルト...
-
チェックボックスのON/OFFでVal...
-
TextBoxに半角数字以外を入れた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
画面表示とともに、テーブルの...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
テキストエリアに入力した改行...
-
【jQuery】tableループ内のIDの...
-
idの振り直しについて
-
プルダウンメニューを表の中に...
-
javascriptで画像をテーブルに...
-
javascriptで<table>背景色の取得
-
どこに挿入?
-
javascriptでクリックするごと...
-
jquery にて、アラートダイアロ...
-
Javascriptでテーブルタグの座...
-
動的なcheckboxのcheckedについて
-
javascriptで画像の移動
-
<iframe>内にHTMLをランダム表...
-
クリックごとに文字色が交互に...
-
javascriptでスロットマシン
-
連動テーブルのクロスハイライト
おすすめ情報