• 締切済み

テーブルの自動生成

プログラミング/初心者です。 aspを勉強しております。ご教授下さい。 aspで<table>を自動作成したいとおもっております。 やりたいことは、以下です。 <table> <tr> <td></td> </tr> <table> 行、列をプログラムで生成 ・3列目で折り返すてきな... ・行、列を数字で指定したら<table>が生成される  (プログラム内に 行=5 列=5 など) 今は、( do , loop , response.write )程度しか理解できていません。 お願いします。 余談なのですが、なにか、よい参考書など御座いましたらお教え下さい。

みんなの回答

回答No.2

#1 Wizard_Zeroです。 ・1~100の間で3と5の倍数だけ出力 ・横3列になったら次の行へ こんな感じでしょうか [3|5|6] [9|10|12] [15|18|20] 可変幅フォントだと表現しにくい (-"-;) 考え方 ・1~100までカウントするループをつくる ・3か5の倍数のときに<td>~</td>を出力し、出力した回数を数える ・<td>~</td>を3つ出力したら</tr>を置く 問題は<tr>の置きどころですが、<td>~</td>を出力する直前で、出力回数が0の場合は<tr>を置くようにすれば大丈夫です。 外郭だけ載せますので参考にしてみてください。 <table> <% Dim cnt As Integer, td As Integer cnt = 0 td = 0 Do cnt = cnt + 1  If (cnt Mod 3) = 0 or (cnt Mod 5) = 0 Then   If td = 0 Then   [ここで<tr>を出力]   End If  [ここで<td>~</td>を出力]  td = td + 1   If td = 3 Then   [ここで</tr>を出力]   td = 0   End If  End If Loop While cnt < 100 %> </table> 数えてみたら、1~100までの3か5の倍数は全部で47個かな? 3列で揃えるには<td></td>が1個足らないので最後の</tr>は出力されません。 手書きで付け足すなりtdから不足分を補うなりしてみてください。

iroom0928
質問者

お礼

有り難う御座います!!! 出来ました。 次はカレンダーを作ってみようと思ってます^^ 本当に有り難う御座いました。 また、道に迷ったら質問させて頂きます。

回答No.1

<% Dim intTR As Integer, intTD As Integer Dim i As Integer, l As Integer intTD = 5 ' 列数 intTR = 5 ' 行数 %> <table> <% For i = 1 To intTR %> <tr> <% For l = 1 To intTD %> <td></td> <% Next l %> </tr> <% Next i %> </table> こういうことでよろしいですかな?

iroom0928
質問者

補足

本当に有り難う御座います。 とても勉強になりました!! 私は、Do Until...loopでやってみました。 しかし、なんかいまいちで、、、 今はテーブルに数字をカウントし(1~100)、 IF文を使い3、5の倍数にリンクを貼るということをやっているのですが うまくいきません。 ソースを書きますので、みていただけませんか。 宜しくお願いします。 -------------------------------------------------- <% Option Explicit Dim i,j,cnt,MAXCOLS,MAXROWS i = 0 j = 0 cnt = 0 %> <table border="1"> <% MAXROWS = 10 Do Until MAXROWS = j %> <tr> <% for i = 1 to 10 cnt = cnt + 1 %> <td width="30"><%=cnt%></td> <% if(i mod 3) = 0 then %> <td width="30"><a href="http://www.yahoo.co.jp"><%=cnt%></a></td> <% elseif(i mod 5) = 0 then %> <td width="30"><a href="http://www.google.co.jp"><%=cnt%></a></td> <% end if %> <% next %> </tr> <% j = j + 1 loop %> </table> -------------------------------------------------- 倍数字に数字がかぶってしまします。。。